• struts1


    1.简单应用示例

    导入struts1的jar包,然后配置xml,写java和jsp

    /struts/WebRoot/Login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
      </head>
      
      <body>
        <form action ="<%=request.getContextPath()%>/login.do">
            username : <input type='text' name ='username' />
            password : <input type='password' name ='password' />
            <input type="submit" value="login"/>
        </form>
      </body>
    </html>

    /struts/WebRoot/LoginSuccess.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
           登陆成功
      </body>
    </html>

    /struts/WebRoot/LoginFailure.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        登陆失败
      </body>
    </html>
    View Code

    /struts/WebRoot/WEB-INF/web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <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>
      </servlet>
      
      <servlet-mapping>
          <servlet-name>action</servlet-name>
          <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    </web-app>

    /struts/WebRoot/WEB-INF/struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
        <form-beans>
            <form-bean name="loginForm" type="cn.itcast.LoginForm"></form-bean>
        </form-beans>
        <action-mappings>
            <action path="/login" type="cn.itcast.LoginAction" name="loginForm">
                <forward name="success" path="/LoginSuccess.jsp"></forward>
                <forward name="failure" path="/LoginFailure.jsp"></forward>
            </action>
        </action-mappings>
    </struts-config>

    /struts/src/cn/itcast/LoginAction.java

    package cn.itcast;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    
    public class LoginAction extends Action {
    
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            // TODO Auto-generated method stub
            LoginForm loginForm= (LoginForm)form ;
            String username = loginForm.getUsername();
            if("itcast".equals(username)){
                return mapping.findForward("success");
            }else{
                return mapping.findForward("failure");
            }
        }
    
    }

    /struts/src/cn/itcast/LoginForm.java

    package cn.itcast;
    
    import org.apache.struts.action.ActionForm;
    
    public class LoginForm extends ActionForm {
        private String username = null;
        private String password = null;
        
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        
    }

    2.Action什么时候初始化?发出该Action请求,不是在读取配置文件时初始化。

    3.每个Action只会初始化一次

    4. Action是线程不安全的,因为所有的请求都共享一个action实例

    5.怎样实现action的安全性编程?

      1)注意不要用实例变量或者类变量共享只是针对某个请求的数据

      2)注意资源操作的同步性

    应用:统计一个action的访问次数

    在调用时加1,注意用Sychronzied同步变量

    6.ActionMapping类,可以获取ActionMapping里配置的信息

    7.ActionForward

     redirect:false ---------requestDispather:forward(重定向)默认值

          true-----------httpServletResponse:sendRedirect(重新发出请求)

    8.ActionForm

    1)检查action的映射,确定action中已经配置了对ActionForm的映射

    2)根据name属性,查找formbean的配置信息

    3)检查action的formbean的使用范围,确定在此范围下(request、session),是否已经有此formbean的实例

    4)假如已经存在就重用

    5)否则就重新构造,并保存在一定的范围

    9.Action

    1)attribute:用来存取form的关键字,缺省值与name一样

    2)validate:用来控制是否校验表单(校验开关),缺省ture--校验

    3)input如果表单校验不通过则跳转到该值所代表的目标模块,一般结合validate:true来使用

    10.全局跳转

    <global-forwards>

    <forward name="error" path="/error.jsp"></forward>

    </global-forwards>

    11.ForwardAction不直接访问jsp,每次都访问action.do

    <action path="/action" forward="/action.jsp"></action>

    12.DispatchAction用一个action来分发请求,xml配置parameter参数

    调用时加参数/risk.do?method=action中的方法名

    <action path="/risk" type="org.springframework.web.struts.DelegatingActionProxy" parameter="method"></action>

  • 相关阅读:
    树莓派基于scratch2控制GPIO
    一次修复linux的efi引导的集中方法总结记录
    linux(deepin) 下隐藏firefox标题栏
    log4j 1.2 配置和使用简述
    在非gnome系桌面环境下运行deepin-wine tim的错误解决
    manjaro AwesomeWM 上使用双显示器
    linux 关闭主板上的蜂鸣器声音
    anki的使用以及anki server的配置
    阅读《人类简史》-- 1.认知革命
    java生成zip包兼容Linux
  • 原文地址:https://www.cnblogs.com/fanglove/p/4701324.html
Copyright © 2020-2023  润新知