当前位置:编程学习 > JAVA >>

Struts第二天总结案例

这里省略登录界面和登录成功的跳转界面;这两个界面都是比较简单的jsp页面;省略了bean文件,其中只是封装了username和password属性
1.web.xml 配置文件
[java 
1 <?xml version="1.0" encoding="UTF-8"?> 
2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
6 <filter> 
7 <filter-name>struts2</filter-name> 
8 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
9 </filter> 
10 
11 <filter-mapping> 
12 <filter-name>struts2</filter-name> 
13 <url-pattern>/*</url-pattern>
14 </filter-mapping> 
15  
16 <welcome-file-list> 
17 <welcome-file>index.jsp</welcome-file> 
18 </welcome-file-list> 
19 </web-app> 
20 2.struts.xml配置文件,struts2配置最重要的文件,名字不能修改 
21 <?xml version="1.0" encoding="UTF-8" ?> 
22 <!DOCTYPE struts PUBLIC 
23 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
24 "http://struts.apache.org/dtds/struts-2.3.dtd"> 
25  
26 <struts> 
27 <!-- 
28 package包:只提供包与继承;name属性为随便起的名字,写个空值都可以,但是必须有如果没有会报错Attribute "name" is required and must be specified for element type "package". at; 
29 namespace:用于与jsp中写的路径匹配,即浏览器中访问的路径; 
30 extends:继承,继承其他包并拥有其他包的所有特性,默认继承struts-default包 
31 --> 
32 <package name="test" namespace="/csdn" extends="struts-default"> 
33 <!-- 
34 默认的类继承的是struts-default包中的默认继承类 <default-class-ref 
35 class="com.opensymphony.xwork2.ActionSupport" /> 
36 class的属性值可以修改成自己编写的类,只是要填写该类的全限制名; 
37 如果权限名写错就会出现 Error filterStart错误; 
38  
39 可以不写method,不写默认的method方法是execute, 
40 如果要用自己类中定义的其他方法那么必须加上method属性,不加肯定会出错找不到结果集中的action,与result标签的name属性不写的错误一样 
41 加上但是method的值中方法与实际类中的方法不一致会出错:NoSuchMethodException就是没有这样的方法 
42  
43 action类的处理方法通过method属性控制选择哪个方法;所有的action类都有一个默认的处理方法 execute() 
44  
45 --> 
46 <action name="demo" class="www.csdn.struts2.demo.DemoAction" method="login"> 
47 <!-- 接收com.opensymphony.xwork2.ActionSupport类中的execute方法返回 字符串 
48 通过result标签的name属性指向返回的字符串;如果没有配置name属性,那么的默认的就是name="success" 
49 如果你使用自己编写的类,那么这里的name属性就不了可以省略使其走默认值 ;否则会出错no result defined for action,结果集没用默认的action 
50 --> 
51 <result name="success">/sc.jsp</result> 
52 <result name="login">/index.jsp</result> 
53 </action> 
54 </package> 
55 </struts> 
56 3. c3p0-config.xmlc 3p0配置文件 
57 <c3p0-config> 
58 <default-config> 
59 <property name="driverClass">com.mysql.jdbc.Driver</property> 
60 <property name="jdbcUrl">jdbc:mysql://localhost:3306/struts2</property> 
61 <property name="user">root</property> 
62 <property name="password">root</property> 
63 <property name="initialPoolSize">10</property> 
64 <property name="maxIdleTime">30</property> 
65 <property name="maxPoolSize">100</property> 
66 <property name="minPoolSize">10</property> 
67 <property name="maxStatements">200</property> 
68 </default-config> 
69  
70 <named-config name="mysql"> 
71 <property name="driverClass">com.mysql.jdbc.Driver</property> 
72 <property name="jdbcUrl">jdbc:mysql://localhost:3306/struts2</property> 
73 <property name="user">root</property> 
74 <property name="password">root</property> 
75 <property name="acquireIncrement">5</property> 
76 <property name="initialPoolSize">10</property> 
77 <property name="minPoolSize">50</property> 
78 <property name="maxPoolSize">1000</property> 
79 </named-config> 
80 </c3p0-config>  
81 4.dao实现类 
82 package www.csdn.dao; 
83  
84 import java.sql.SQLException; 
85  
86 import org.apache.commons.dbutils.QueryRunner; 
87 import org.apache.commons.dbutils.handlers.BeanHandler; 
88  
89 import www.csdn.domain.User; 
90 import com.csdn.util.DBManager; 
91  
92 public class ActionDao { 
93  
94 public User login(String username,String password)throws SQLException{ 
95 QueryRunner qr = new QueryRunner(DBManager.getDataSource()); 
96 String sql = "select * from login where username = ? and password = ?"; 
97 Object[] params = {username,password}; 
98 User user = (User) qr.query(sql,params,new BeanHandler(User.class)); 
99 return user; 
100  
101 } 
102  
103 } 
104 5.action主要类 
105 package www.csdn.struts2.demo; 
106  
107 import java.sql.SQLException; 
108  
109 import www.csdn.dao.ActionDao; 
110 import www.csdn.domain.User; 
111  
112 import com.opensymphony.xwork2.ActionSupport; 
113  
114 /*** 
115 *  
116 * 自己编写的action类可以不继承ActionSupport,不继承直接使用自己编写的类不会出错; 
117 * 但是大多数情况下要继承ActionSupport类或实现Action接口,因为ActionSupport类中封装了大多数需要的常量, 
118 * 继承之后就可以直接使用这些常量而不需要再自己去定义 
119 */ 
120 public class DemoAction extends ActionSupport{ 
121 
122 //封装请求的参数,必须与jsp页面中的input标签的username名字相同  
123 private String username; 
124 pr
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,