添加Library在buildpath中,就是右键工程->properties->java buildpath->Libraries

然后点击add Library就是添加Library 根据提示添加即可,

向已有Library中添加jar,添加内部的点击add jar;添加外部的点击add  External JARS;

其中有一个WebLibrary可能已经存在于工程中了,但在工程树中找不到,解决办法就是手动把referenceLibrary中的jar拷到WebINF下的lib文件夹中就可以了。

在一个Web应用中表单form的生命周期:

以登录所用的登录表单为例介绍:

  1. login.jsp
  2.  
  3. <form name="form1" method="post" action="manager.do?action=login">
  1. <servlet>
  2. <servlet-name>action</servlet-name>
  3. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  4. <init-param>
  5. <param-name>config</param-name>
  6. <param-value>/WEB-INF/struts-config.xml</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>debug</param-name>
  10. <param-value>3</param-value>
  11. </init-param>
  12. <init-param>
  13. <param-name>detail</param-name>
  14. <param-value>3</param-value>
  15. </init-param>
  16. <load-on-startup>0</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>action</servlet-name>
  20. <url-pattern>*.do</url-pattern>
  21. </servlet-mapping>

以上是Web.xml

structs-config.xml:

  1. <action name="managerForm" path="/manager" scope="request" type="com.action.Manager" validate="true">
  2. <forward name="managerQuery" path="/manager.jsp" />
  3. <forward name="managerLoginok" path="/main.jsp" />
  4. <forward name="managerAdd" path="/manager_ok.jsp?para=1" />
  5. <forward name="managerQueryModify" path="/manager_Modify.jsp" />

Manager.java:

  1. public ActionForward execute(ActionMapping mapping, ActionForm form,
  2. HttpServletRequest request, HttpServletResponse response) {
  3. String action = request.getParameter("action");
  4. System.out.println("获取的查询字符串:" + action);
  5. if (action == null || "".equals(action)) { /*如果没有操作的动作*/
  6. return mapping.findForward("error");
  7. } else if ("login".equals(action)) { /*如果是处理管理员登陆*/
  8. return managerLogin(mapping, form, request, response);
  9. } else if ("managerAdd".equals(action)) {
  10. return managerAdd(mapping, form, request, response);
  11. } else if ("managerQuery".equals(action)) {
  12. return managerQuery(mapping, form, request, response);
  13. } else if ("managerModifyQuery".equals(action)) {
  14. return managerModifyQuery(mapping, form, request, response);
  15. } else if ("managerModify".equals(action)) {
  16. return managerModify(mapping, form, request, response);
  17. } else if ("managerDel".equals(action)) {
  18. return managerDel(mapping, form, request, response);
  19. } else if ("querypwd".equals(action)) {
  20. return pwdQuery(mapping, form, request, response);
  21. } else if ("modifypwd".equals(action)) {
  22. return modifypwd(mapping, form, request, response);
  23. }
  24. request.setAttribute("error", "操作失败!");
  25. return mapping.findForward("error");
  26. }
  27.  
  28. public ActionForward managerLogin(ActionMapping mapping, ActionForm form,
  29. HttpServletRequest request, HttpServletResponse response) {
  30. ManagerForm managerForm = (ManagerForm) form;
  31. managerForm.setName(managerForm.getName());
  32. managerForm.setPwd(managerForm.getPwd());
  33. /*将存有管理员信息的formbean传递给DAO业务层处理(查询是否存在该管理员帐号和密码)*/
  34. int ret = managerDAO.checkManager(managerForm);
  35. System.out.print("验证结果ret的值:" + ret);
  36. /*业务层如果返回1,表示验证成功*/
  37. if (ret == 1) {
  38. /*将用户帐号保存在session中*/
  39. HttpSession session = request.getSession();
  40. session.setAttribute("manager", managerForm.getName());
  41. /*交给控制器,跳转到登陆成功的页面*/
  42. return mapping.findForward("managerLoginok");
  43. } else {
  44. request.setAttribute("error", "您输入的管理员名称或密码错误!");
  45. return mapping.findForward("error");
  46. }
  47. }

具体的处理就是以上这些内容,form的传递以及request的整个处理过程。

至于让人费解的这一个action的内容

  1. <form name="form1" method="post" action="manager.do?action=login">
    可以用一下这张图来解释:

  1.  

Library学习日志(……)的更多相关文章

  1. GRE学习日志

    发现开博客园真的很有督促作用,今天也顺便开个GRE学习日志吧 2015-02-09:单词 2015-02-10:单词 2015-02-11:单词 2015-03-02:阅读 2015-03-04:阅读 ...

  2. Cortex-M3学习日志(六) -- ADC实验

    上一次简单的总结了一下DAC方面的知识,好吧,这次再来总结一下ADC方面的东东.ADC即Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器.现实世界是由模 ...

  3. Cortex-M3学习日志(五) -- DAC实验

    终于逮了个忙里偷闲的机会,就再学一下LPC1768的外围功能吧,循序渐进是学习的基本规则,也许LPC1768的DAC与8位单片机16位单片机里面集成的DAC操作类似,但是既然这是懒猫的学习日志,就顺便 ...

  4. webpack2学习日志

    webpack说容易也容易,说难也难,主要还是看个人,想学到什么样的程度,很多公司可能要求仅仅是会用就行,但是也有一些公司要求比较高,要懂一些底层的原理,所以还是要花一些时间的,看个人需求.这篇仅仅是 ...

  5. javascript学习日志:前言

    javascript学习日志系列的所有博客,主要理论依据是<javascript权威指南>(犀牛书第6版)以及<javascript高级程序设计第三版>(红色书),目前js行业 ...

  6. MobileForm控件的使用方式-用.NET(C#)开发APP的学习日志

    今天继续Smobiler开发APP的学习日志,这次是做一个title.toolbar.侧边栏三种效果 样式一 一.          Toolbar 1.       目标样式 我们要实现上图中的效果 ...

  7. 我的游戏学习日志3——三国志GBA

    我的游戏学习日志3——三国志GBA 三国志GBA由日本光荣公司1991~1995所推出<三国志>系列游戏,该作是光荣在GBA上推出的<三国志>系列作品的第一款.本游戏登场武将总 ...

  8. 【转】Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性

    [转]Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性 Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性

  9. composer的安装和使用 学习日志

    如果你做为一个phper,没有用过composer,那你真的不是一个合格的开发者.那么就来记录一下composer的学习日志 下面分享几个学习源头: composer中文网站:https://www. ...

随机推荐

  1. Python 运算符(算术运算符(+,-,*,**,/,//),逻辑运算符(not , or ,and),比较运算符(>,<,>=,=<),复合运算符(+=,-=,*=,/=,**=,//=))

    # 一.算术运算符(+,-,*,**, /, //, %) # 加法运算符+ print(1 + 2) # 字符串相连 ") # 重载 print([1,2] + [3,4]) # 幂运算* ...

  2. 蓝牙通讯 ble

    http://blog.csdn.net/beijingshi1/article/details/36426829

  3. hihocoder #1032 : 最长回文子串【 manacher算法实现 】

    #1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...

  4. Drools Expression 介绍

    用好Drools 中的表达式是你的规则引擎能否强大的必要条件 http://docs.jboss.org/drools/release/6.1.0.Final/drools-docs/html_sin ...

  5. Jquery实现超酷的时间轴特效

    Timeline时间轴Jquery特效是一款现在互联网上非常流行的一种布局结构,结合了瀑布流布局,最近很多网友问到这种特效,网站上有网友们分享过一款,功能虽然实现,但样式不太好看,今天就把它整理出来分 ...

  6. 机器学习(二十四)— 偏差Bias 与方差Variance

    1.首先 Error = Bias + Variance  Error反映的是整个模型的准确度, Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度, Variance反映的是模 ...

  7. Git教程(二)-如何上传和同步自己的git项目

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Git接触并使用多年, 工作中使用较多,它的分布式存储,使每个人的电脑均为服务器的策略非常棒:再加上 ...

  8. 浏览器访问web站点原理图

    启动tomcat,在浏览器中输入http://localhost:8080/web_kevin/hello.html,发生的事情如下: 1.浏览器解析主机名,即解析localhost.浏览器首先会到本 ...

  9. Python中进度条如何实现

    print源码,参数end默认值为换行符,需要置成空,就会实现打印一行的效果 import time for i in range(100): time.sleep(1)#sleep一秒再输出 # 需 ...

  10. 【Codeforces Round #466】E. Cashback DP+ST表

    题意 给定$n$个数,将其划分成若干个连续的子序列,求最小价值,数组价值定义为,数组和减去$\lfloor \frac{k}{c} \rfloor$,$k$为数组长度,$c$为给定数 可以列得朴素方程 ...