韩顺平 struts 笔记

时间:2022-06-16 21:03:45

      第一讲

1、Struts 是一个开源的web框架,框架提高了程序的规范的同时也约束了程序员的*

  为什么会有struts:因为我们队mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项目(struts)。

      第二讲

  韩顺平 struts 笔记

            第三讲

 1、录小项目过程步骤

  新建web工程

  导入struts包

  编写login.jsp

  编写actionForm(用户表单)和action(小队长+登录队长)

  配置struts-config.xml该文件用于配置action actionForm对应关系,跳出位置  一般放在WEB-INF里

  编写ok.jsp和err.jsp 

  配置web.xml 

  测试

 2、

  login.jsp

  <body>

    <form  action = "/strutslogin/login.do"  method="post">

    u:<input  type = "text"  name = "username">

    p:<input  type = "password"  name = "password">

    <input  type = "submit"  value = "login">

  </body>

 

  index.jsp

  <body>

    <jsp:include page="/WEB-INF/login.jsp"></jsp:include>

  </body>

 

      UserForm.java

    //这是一个表单用来填充数据

    package com.hsp.forms;

    import org.apache.struts.action.ActionForm;

    public class UseForm extends ActionForm{

      //定义属性(这有一个规范,就是我们定义属性名字义的时候

      //应该和 jsp页面名称一样

      //只要保证get  set方法和属性名  存在关联

      private String name;

      private String pass;

      public String getUsername(){

        return name;

      }

      public void setUsername(String username){

        this.name = username;

      }

      public String getPassword(){

        return  pass;

      }

      public void setPassword(String password){

        this.pass = password

      }

    }

 

    LoginAction.java

    package com.hsp.actions;

    //这是一个action(表示小队长,需要继承Action)

    import org.apache.struts.action.Action;

    public class LoginAction extends Action{

      //我们需要重新编写一个方法;execute会被自动调用

      @Override

      public ActionForward execute(ActionMapping mapping,ActionForm form.

        HttpServletRequest  request,HttpServletResponse response)

        throws Exception{

        //把form转成对应的UserForm对象

        UserForm userForm=(UserForm)form;

        System.out.println("用户名="+userForm.getUsername);

        return

    }

 

    struts-config.xml

  <?xml Version = "1.0"  encoding = "utf-8">

  <struts-config>

  <!--配置表单-->

  <form-beans>

  <!--name是表单名字,可以随意写,但是我们建议取名规范  表单类名-->

  <!--type用于指定表单类全路径-->

  <form-bean name="userForm" type="com.hsp.forms.UserForm"/>

  </form-beans>

  <!--配置action-->

  <action - mappings>

  <!--配置具体的一个action  path:表示将来访问该action的资源名-->

  <!-- name:用于关联某个表单-->

  <!--path:用于指定该action类的全路径-->

  <action path="/login" name="userForm" type="com.hsp.action.LoginAction"></action>

  <!--这里配置跳转关系-->

  <forward name="ok" path="/WEB-INF/wel.jsp"/>

  <forward name="err" path="/WEB-INF/err.jsp"/>

  </action>

  </action-mappings>

  </struts-config>

 

  wel.jsp

  <body>

    wel<br>

  </body>

 

   error.jsp

   <body>

    error<br>

   </body>

 

      wel.xml

      <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>//总司令位置

    <!--配置struts -config-->

    <init-param>

    <param-name>config</param-name>

    <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    </servlet>

    <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

    </servlet-mapping>

       第四讲       

 1、使用filter配合struts解决中文乱码

  开发一个过滤器,并设置request.setCharacterEncoding("utf-8");

  配置过滤器

  public class MyFilter extends HttpServlet implements Filter { 

           @Override  public  void  doFilter(ServletRequest  arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {   

     arg0.setCharacterEncoding("gb2312");     

     arg1.setCharacterEncoding("gb2312");         

     arg2.doFilter(arg0, arg1);  

        } 

  配置web.xml 

  <filter> 

  <filter-name>MyFilter</filter-name> 

  <filter-class>com.chao98.services.MyFilter</filter-class> 

  </filter> 

  <filter-mapping> 

  <filter-name>MyFilter</filter-name> 

  <url-pattern>/*</url-pattern> 

  </filter-mapping> 

 2、每个action都是单态,包括ActionServlet,单态是指,在整个程序运行过程中,始终是一个对象

3、struts-config文件路径,不一定非放在/WEB-INF,可以自己放。

4、在一个项目中,可不可以有多个struts配置文件

  可以有,如果有多个配置文件,在web.xml文件可以这样配置

      第7讲