struts-入门 登陆 maven 构建

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 21:39   66   0

接触到别人的新的项目, 不得不研究下Struts2了. 用struts2写了一个登录例子, 大致了解了一下.

1. web.xml代码:

Xml代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3. xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7. <!-- 配置struts2的过滤器 -->
  8. <filter>
  9. <filter-name>struts2</filter-name>
  10. <filter-class>
  11. org.apache.struts2.dispatcher.FilterDispatcher
  12. </filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>struts2</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>
  18. <welcome-file-list>
  19. <welcome-file>login.jsp</welcome-file>
  20. </welcome-file-list>
  21. </web-app>

2.登录页面login.jsp

Html代码 收藏代码
  1. <%@ page pageEncoding="utf-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags" %>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6. <title>Struts2 Person Login Test</title>
  7. </head>
  8. <body>
  9. <s:form action="UserLogin">
  10. <s:textfield name="per.username" label="username"></s:textfield>
  11. <s:password name="per.password" label="password"></s:password>
  12. <s:submit></s:submit>
  13. </s:form>
  14. </body>
  15. </html>

3.登录成功页面login_s.jsp

Html代码 收藏代码
  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. String username = (String)session.getAttribute("user");
  6. %>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11. <title>Struts2 Person Login Result</title>
  12. </head>
  13. <body>
  14. Hi:<br>
  15. <%=username%><br>
  16. Welcome... <br>
  17. </body>
  18. </html>

4. Action代码PersonAction.java

Java代码 收藏代码
  1. package com.greatwqs.action;
  2. import java.util.Map;
  3. import com.greatwqs.dao.PersonDao;
  4. import com.greatwqs.entity.Person;
  5. import com.opensymphony.xwork2.ActionContext;
  6. import com.opensymphony.xwork2.ActionSupport;
  7. /***
  8. *
  9. * @author greatwqs.iteye.com
  10. * @data 2011-12-01
  11. */
  12. public class PersonAction extends ActionSupport {
  13. private Person per;
  14. private static final long serialVersionUID = 1L;
  15. public String execute() throws Exception {
  16. PersonDao dao = new PersonDao();
  17. boolean flag = dao.isPersonCanLogin(per.getUsername(), per.getPassword());
  18. if(flag){
  19. Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
  20. session.put("user", per.getUsername());
  21. return SUCCESS;
  22. } else {
  23. return INPUT;
  24. }
  25. }
  26. public Person getPer() {
  27. return per;
  28. }
  29. public void setPer(Person per) {
  30. this.per = per;
  31. }
  32. }

5. 实体代码Person.java

Java代码 收藏代码
  1. package com.greatwqs.entity;
  2. /***
  3. *
  4. * @author greatwqs.iteye.com
  5. * @data 2011-12-01
  6. */
  7. public class Person {
  8. private String username;
  9. private String password;
  10. public String getUsername() {
  11. return username;
  12. }
  13. public void setUsername(String username) {
  14. this.username = username;
  15. }
  16. public String getPassword() {
  17. return password;
  18. }
  19. public void setPassword(String password) {
  20. this.password = password;
  21. }
  22. }

6. 数据库持久层代码PersonDao.java

Java代码 收藏代码
  1. package com.greatwqs.dao;
  2. /***
  3. *
  4. * @author greatwqs.iteye.com
  5. * @data 2011-12-01
  6. */
  7. public class PersonDao {
  8. /***
  9. * 根据用户名和密码,判断用户是否能登陆!
  10. * @param username
  11. * @param password
  12. * @return
  13. */
  14. public boolean isPersonCanLogin(String username, String password) {
  15. return username.equals(password);
  16. }
  17. }

7. struts.xml

Xml代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <!-- 改变url现实的后缀,默认是action -->
  7. <constant name="struts.action.extension" value="xhtml" />
  8. <package name="struts2login" extends="struts-default">
  9. <!-- 这里的Class是由Spring里面制定的ID,如果单独用struts2,则这里是包名+类名 -->
  10. <action name="UserLogin" class="com.greatwqs.action.PersonAction">
  11. <result name="success" >/login_s.jsp</result>
  12. <result name="input">/login.jsp</result>
  13. </action>
  14. </package>
  15. </struts>

保存起,后面再接触这个,再翻翻!

classpath:

Xml代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <classpath>
  3. <classpathentry kind="src" path="src"/>
  4. <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  5. <classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>
  6. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm.jar"/>
  7. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload.jar"/>
  8. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io.jar"/>
  9. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts.jar"/>
  10. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-core-2.0.11.jar"/>
  11. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xwork-2.0.4.jar"/>
  12. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar"/>
  13. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ognl-2.6.11.jar"/>
  14. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-attrs.jar"/>
  15. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-commons-2.2.3.jar"/>
  16. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-util-2.2.3.jar"/>
  17. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjrt.jar"/>
  18. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver.jar"/>
  19. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker-2.3.8.jar"/>
  20. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker.jar"/>
  21. <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
  22. </classpath>

开发环境:


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP