struts2学习-简单的登录功能

来源:互联网 发布:c语言gui界面 编辑:程序博客网 时间:2024/06/05 16:36

因为刚接触struts2,还有很多不足地方,在之后学习中会慢慢改进。

 这是一个简单的登录功能,主要是为了熟识struts2的基本配置。

下面是代码:

(1)新建login.jsp页面,用来设置用户登录的显示信息。

在表单中使用了struts2标签分别定义用户名和密码文本框,然后定义submit按钮。

<%@ page language="java" pageEncoding="GBK"%><%@taglib uri="/struts-tags"  prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>请登录</title><link rel="stylesheet" type="text/css" href="style/style.css">  </head>  <body>    <div align="center">  <%--  登录  --%>  <div ><font color='red'><s:actionerror/></font></div>  <hr/>    <br/>        <h2>简单的登录</h2>        <s:form action="loginAction" namespace="/">           <s:textfield name="uname" label=" 用户名"/>           <s:password name="upass" label="密码"/>           <s:submit value="提交" />        </s:form>     </div>  </body></html>


(2)新建一个LoginAction.java文件。

package com.neusoft.web;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{private String uname;private String upass;public String execute(){System.out.println("--execute--");if("TJS".equals(uname)&&"123".equals(upass)){Map<String,Object> session=ActionContext.getContext().getSession();session.put("user", uname);//得到原生的servletHttpServletRequest request=ServletActionContext.getRequest();HttpSession session2=request.getSession();session2.setAttribute("user2", uname);  return "welcome";}else{return "fail";}}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpass() {return upass;}public void setUpass(String upass) {this.upass = upass;}}


(3)新建welcome.jsp页面,用来输出成功登录后的消息。

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <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>    WElcome! ${sessionScope.user }    <hr/>  得到原生的session值:${sessionScope.user2 }  </body></html>

(4)新建fail.jsp页面,用来输出登录失败后的消息。


<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <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>  Fail 登录失败!<br>  </body></html>


(5)在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">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <filter>  <filter-name>struts2</filter-name>  <filter-class>  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class>  </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping></web-app>

(6)配置是struts.xml文件


<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.ui.theme" value="xhtml"></constant><package name="default" namespace="/" extends="struts-default" ><!-- 指定action的method名,来取代动态方法调用,避免安全问题 --><action name="loginAction" class="com.neusoft.web.UserAction" method="login">   <result name="welcome">/welcome.jsp</result>  <result name="regok" >/regok.jsp</result>  <result name="input">/login.jsp</result></action></package></struts>    

上面的步骤都完成后,在tomcat下发布项目并运行。


这是开始学习struts后的第一个简单的功能,可能有很多不足的地方,我会继续努力完善的。


0 0
原创粉丝点击