接触到别人的新的项目, 不得不研究下Struts2了. 用struts2写了一个登录例子, 大致了解了一下.
1. web.xml代码:
Xml代码 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 配置struts2的过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
2.登录页面login.jsp
Html代码 <%@ page pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Struts2 Person Login Test</title> </head> <body> <s:form action="UserLogin"> <s:textfield name="per.username" label="username"></s:textfield> <s:password name="per.password" label="password"></s:password> <s:submit></s:submit> </s:form> </body> </html>
3.登录成功页面login_s.jsp
Html代码 <%@ page language="java" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; String username = (String)session.getAttribute("user"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Struts2 Person Login Result</title> </head> <body> Hi:<br> <%=username%><br> Welcome... <br> </body> </html>4. Action代码PersonAction.java
Java代码 package com.greatwqs.action; import java.util.Map; import com.greatwqs.dao.PersonDao; import com.greatwqs.entity.Person; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; /*** * * @author greatwqs.iteye.com * @data 2011-12-01 */ public class PersonAction extends ActionSupport { private Person per; private static final long serialVersionUID = 1L; public String execute() throws Exception { PersonDao dao = new PersonDao(); boolean flag = dao.isPersonCanLogin(per.getUsername(), per.getPassword()); if(flag){ Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION); session.put("user", per.getUsername()); return SUCCESS; } else { return INPUT; } } public Person getPer() { return per; } public void setPer(Person per) { this.per = per; } }
5. 实体代码Person.java
Java代码 package com.greatwqs.entity; /*** * * @author greatwqs.iteye.com * @data 2011-12-01 */ public class Person { private String username; private String password; 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; } }
6. 数据库持久层代码PersonDao.java
Java代码 package com.greatwqs.dao; /*** * * @author greatwqs.iteye.com * @data 2011-12-01 */ public class PersonDao { /*** * 根据用户名和密码,判断用户是否能登陆! * @param username * @param password * @return */ public boolean isPersonCanLogin(String username, String password) { return username.equals(password); } }7. struts.xml
Xml代码 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 改变url现实的后缀,默认是action --> <constant name="struts.action.extension" value="xhtml" /> <package name="struts2login" extends="struts-default"> <!-- 这里的Class是由Spring里面制定的ID,如果单独用struts2,则这里是包名+类名 --> <action name="UserLogin" class="com.greatwqs.action.PersonAction"> <result name="success" >/login_s.jsp</result> <result name="input">/login.jsp</result> </action> </package> </struts>保存起,后面再接触这个,再翻翻!
classpath:
Xml代码 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-core-2.0.11.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xwork-2.0.4.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ognl-2.6.11.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-attrs.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-commons-2.2.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-util-2.2.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjrt.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker-2.3.8.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker.jar"/> <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/> </classpath>
开发环境: