• struts2基础


    1. web浏览器请求一个资源
    2. 过滤器Dispatch查找请求,确定适当的Action
    3. 拦截器自动对请求应用通用功能,如验证和文件上传等操作
    4. Action的excute方法通常用来存储和(或)重新获得信息(数据库)
    5. 结果返回浏览器。可能是HTML,图片,PDF或其他。

    struts搭建:

    在web.xml文件配置struts过滤器 (struts本身就是一种过滤器),编写struts基本参数,访问前端控制器

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
     3   <display-name>e5</display-name>
     4   <welcome-file-list>
     5     <welcome-file>login.jsp</welcome-file>
     6   </welcome-file-list>
     7   <filter>
     8       <filter-name>struts2</filter-name>
     9       <filter-class>org.apache.struts2.dispacher.ng.filter.Struts.PrepareAndExcuntefilter</filter-class>
    10       <init-param>
    11           <param-name>actionPackages</param-name>
    12           <param-value>com.mycompany.mapp.actions</param-value>
    13       </init-param>
    14   </filter>
    15   <filter-mapping>
    16       <filter-name>struts2</filter-name>
    17       <url-pattern>/*</url-pattern>
    18   </filter-mapping>
    19 </web-app>
    web.xml

    编写 jsp  其中使用struts的表单及其他标签,与HTML略有不同.,jsp页面中指定该页面访问哪个Action

    实现Action 控制器,编写java类继承ActionSupport实现execute方法实现数据查询及返回相应的值来判断页面跳转。Action中可以有user属性并生成getter和setter方法。Action 的属性总是在调用execute方法之前被设置(通过getter,setter)所以不user属性是不需要手动调用getter,setter来设置实例后会从jsp自动的获得对象,所以在execute中可以直接使用。

     1 import java.sql.ResultSet;
     2 import java.util.Map;
     3 
     4 import com.opensymphony.xwork2.ActionContext;
     5 import com.opensymphony.xwork2.ActionSupport;
     6 import com.opensymphony.xwork2.Result;
     7 
     8 public class MainAction extends ActionSupport {
     9 private UserTable user;
    10 
    11 public  UserTable getUser() {
    12     return user;
    13 }
    14 public void setUser(UserTable user) {
    15     this.user = user;
    16 }
    17 @Override
    18 public String execute() throws Exception {
    19     String username= user.getName();
    20     String password= user.getPassword();
    21     boolean validated = false;
    22     SqlSrvDBConn sqlSrvDBConn = new SqlSrvDBConn();
    23     ActionContext context = ActionContext.getContext();
    24     Map session = context.getSession();
    25     UserTable userl = null;
    26     userl=(UserTable)session.get("user");
    27     if (userl==null) {
    28         String sql = "select * from userTable";
    29         ResultSet rs = sqlSrvDBConn.executeQuery(sql);
    30         
    31         try {
    32             while(rs.next()){
    33                 if ((rs.getString(username).trim().compareTo(username)==0)&&(rs.getString("password").compareTo(password)==0)) {
    34                     userl = new UserTable();
    35                     userl.setId(rs.getInt(1));
    36                     userl.setName(rs.getString(2));
    37                     userl.setPassword(rs.getString(3));
    38                     session.put("user", userl);
    39                     validated = true;            
    40                 }    
    41             }
    42             rs.close();
    43         } catch (Exception e) {
    44             e.printStackTrace();
    45         }
    46         sqlSrvDBConn.close();
    47     }else {
    48         validated = true;
    49     }
    50     if (validated) {
    51         return "success";
    52     }else {
    53         return "error";
    54     }
    55 }
    56 
    57 }
    Action
    在src下创建struts.xml文件配置Action,根据Action的返回值分配相应的页面跳转
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC 
     3 "-//Apache Software Foundation//DTD Struts Configuration2.0//EN"
     4 "http://struts.apache.org/dtds/struts-2.0.dtd">
     5 <struts>
     6     <package name="default" extends="struts-default">
     7     <!-- 用户登录 -->
     8     <action name="main" class="com.struts.MainAction">
     9          <result name="success">/mmain.jsp</result>
    10         <result name="error">/error.jsp</result>
    11     </action>
    12     </package>
    13     <constant name="struts.i18n.encoding" value="UTF-8" ></constant>
    14 </struts>
    struts
  • 相关阅读:
    golang语言特性
    Mysql学习之order by的工作原理
    Mysql聚合函数count(*) 的性能分析
    Mysql的刷脏页问题
    普通索引与唯一索引的选择问题
    Mysql锁的类型与简析
    深入浅出Mysql索引
    Mysql修改语句的运行流程
    Mysql查询语句的运行流程
    Go语言入门之切片的概念
  • 原文地址:https://www.cnblogs.com/the-wang/p/7608459.html
Copyright © 2020-2023  润新知