• Library学习日志(……)


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

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

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

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

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

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

    login.jsp:
    
    <form name="form1" method="post" action="manager.do?action=login">
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    

    以上是Web.xml

    structs-config.xml:

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

    Manager.java:

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		String action = request.getParameter("action");
    		System.out.println("获取的查询字符串:" + action);
    		if (action == null || "".equals(action)) { /*如果没有操作的动作*/
    			return mapping.findForward("error");
    		} else if ("login".equals(action)) {	/*如果是处理管理员登陆*/
    			return managerLogin(mapping, form, request, response);
    		} else if ("managerAdd".equals(action)) {
    			return managerAdd(mapping, form, request, response);
    		} else if ("managerQuery".equals(action)) {
    			return managerQuery(mapping, form, request, response);
    		} else if ("managerModifyQuery".equals(action)) {
    			return managerModifyQuery(mapping, form, request, response);
    		} else if ("managerModify".equals(action)) {
    			return managerModify(mapping, form, request, response);
    		} else if ("managerDel".equals(action)) {
    			return managerDel(mapping, form, request, response);
    		} else if ("querypwd".equals(action)) {
    			return pwdQuery(mapping, form, request, response);
    		} else if ("modifypwd".equals(action)) {
    			return modifypwd(mapping, form, request, response);
    		}
    		request.setAttribute("error", "操作失败!");
    		return mapping.findForward("error");
    	}
    
    
    public ActionForward managerLogin(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		ManagerForm managerForm = (ManagerForm) form;
    		managerForm.setName(managerForm.getName());
    		managerForm.setPwd(managerForm.getPwd());
    		/*将存有管理员信息的formbean传递给DAO业务层处理(查询是否存在该管理员帐号和密码)*/
    		int ret = managerDAO.checkManager(managerForm);
    		System.out.print("验证结果ret的值:" + ret);
    		/*业务层如果返回1,表示验证成功*/
    		if (ret == 1) {
    			/*将用户帐号保存在session中*/
    			HttpSession session = request.getSession();
    			session.setAttribute("manager", managerForm.getName());
    			/*交给控制器,跳转到登陆成功的页面*/
    			return mapping.findForward("managerLoginok");
    		} else {
    			request.setAttribute("error", "您输入的管理员名称或密码错误!");
    			return mapping.findForward("error");
    		}
    	}
    

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

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

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

    
    
  • 相关阅读:
    Hadoop and net core a match made in docker
    JavaScript封装方法,兼容参数类型为Number和String
    HTML的input类型为hidden导致无法reset改字段的value问题
    MyBatis自动生成Java/C#的Bean(Entity)的等价MYSQL实现函数
    JMX configuration for Tomcat
    Resolved validation conflict with readonly
    FreeMarker example all in one
    Notepad++ 大小写转换
    常用编辑器列模式快捷键
    Redis应用一例(存证数量用计数器实现)
  • 原文地址:https://www.cnblogs.com/chaiwentao/p/4126696.html
Copyright © 2020-2023  润新知