标签:put inpu 复制 登录 web stl com 压缩 limit
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <!-- 添加下面这行的目的是使程序可以使用struts2中的内置类型转换器实现简单类型转换 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/struts/*</url-pattern> </filter-mapping>
功能 | ||
login.jsp | 用户登录页面,可以输入用户名和密码 | |
LoginAction.java | 用于处理用户的“登录请求”,并且根据请求参数返回相应的结果 | |
step5,创建视图页面 login.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <font color="red" style="font-size:12px"> <s:property value="#session.errorMsg_login"/><br><!-- 显示错误信息:LoginInterceptor.java返回的错误信息 --> <!-- 客户访问权限受限资源时,都会先将请求交给limittedResources.action进行处理, 该action中引入了自定义拦截器loginInterceptor,该拦截器会判断用户是否是已登录用户, 若是,则继续执行下面的拦截器或action,否则就将错误信息保存在session范围的Map集合中,key="errorMsg",并且跳转至登录页面login.jsp --> <s:property value="#session.errorMsg_null"/><br><!-- 显示错误信息:LoginAction.java返回的错误信息 --> <s:property value="#session.errorMsg_passwprd"/><br><!-- 用户名存在但是输入的密码不正确则显示此信息,该错误信息来自于LoginAction --> <s:property value="#session.errorMsg_username"/><br><!-- 用户名不存在时显示此信息,该错误信息来自于LoginAction --> </font> <s:form action="login_execute" method="post" namespace="/"> <s:textfield name="user.username" label="用户名" title="请填写用户名,注意大小写" cssStyle="width:160px;height:26px;"/> <s:password name="user.password" label="密码" title="请填写密码,注意大小写" cssStyle="width:160px;height:26px;"></s:password> <s:submit value="登陆"></s:submit> </s:form>
step6,创建业务控制器类LoginAction.java
/* * author:lxrm * date:2016/05 * @function execute():用户登录, * login.jsp中会触发该action,useraction.execute.action * LoginAction-validation.xml文件来验证用户输入的数据是否合法(文件名:action名称-validation.xml;存放位置:放在对应action的同级目录下) * @function register():用户注册 * * */ package lxrm.struts2demo.actions; import lxrm.struts2demo.javabeans.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private User user; @Override public String execute() throws Exception { /*将username存放成session范围的属性, * 这样就可以通过使用LoginInterceptor拦截器判断session范围内是否有username属性来 * 来得出用户是否已经登录的判断结果*/ HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession(); if(user.getUsername()!=null&&!user.getUsername().equals("")){ session.setAttribute("username", user.getUsername()); }else{ session.setAttribute("errorMsg_null", "用户名不能为空"); } if(user.getUsername().equals("lxrm")){ if(user.getPassword().equals("1")){ return SUCCESS; }else{ session.setAttribute("errorMsg_password", "密码不正确,注意大小写"); return INPUT; } }else{ session.setAttribute("errorMsg_username", "不存在的用户名"); return INPUT; } } /* * 和execute相似的逻辑处理函数,返回注册页面作为视图页面*/ public String register(){ return "regist"; } public void setUser(User user){ this.user=user; } public User getUser(){ return this.user; } }
step7,在src目录下新建struts.xml,并且在struts.xml中配置LoginAction
<action name="login_*" class="lxrm.struts2demo.actions.LoginAction" method="{1}"> <result name="success">/jsp/welcome.jsp</result> <result name="input">/jsp/login.jsp</result> <result name="regist">/jsp/register.jsp</result> </action>
step8,创建welcom.jsp register.jsp页面
step9,浏览器访问login.jsp
标签:put inpu 复制 登录 web stl com 压缩 limit
原文地址:http://www.cnblogs.com/lxrm/p/7087279.html