我的登录页面出问题了 --急盼高手指点!
structs.xml 中用 include 了structs-yxwl.xml
structs-yxwl.xml 内容如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="loginaction" class="struts2.LoginAction">
<result name="success">/index.jsp</result>
<result name="error">/error.html</result>
</action>
</package>
</struts>
--------------------
web.xml 中设置如下:
<servlet>
<servlet-name>loginValidateServlet</servlet-name>
<servlet-class>servlet.loginValidateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginValidateServlet</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
----------------------
我逻辑是:
当用进入 http://192.168.1.xxx:8888/yxwl 时 缺省页面为 index.jsp 主页面
当进入主页面时 调用servlet.loginValidateServlet 判断当前用户是否登录
servlet.loginValidateServlet 的代吗如下:
package servlet;
import ..........
..................
import Gen.md5uitl;
import Gen.cookieuitl;
import com.yxwl.model.*;
public class loginValidateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public loginValidateServlet() {super();}
public void destroy() {super.destroy(); }
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("gb2312");
Cookie cookie= cookieuitl.getCookieByName(request, "yxwl_Login");
try{
if(cookie!=null){
//用户已登录
}else {
//用户未登录, 跳到登录页面
response.sendRedirect("login.jsp");
}
}catch(Exception ex){
'........
}finally{ }}
public void init() throws ServletException {
// Put your code here
}
}
-------------------------------
//登录页面login.jsp 如下
<html>
<boday>
<form class="form-horizontal" action="loginaction" method="POST">
<fieldset>
<div class="input-prepend" title="Username" data-rel="tooltip">
<span class="add-on"><i class="icon-user"></i></span>
<input autofocus class="input-large span10" name="name" id="name" type="text" value="" />
</div>
<div class="clearfix"></div>
<div class="input-prepend" title="Password" data-rel="tooltip">
<span class="add-on"><i class="icon-lock"></i></span>
<input class="input-large span10" name="password" id="password" type="password" value="" />
</div>
<div class="clearfix"></div>
<div class="input-prepend">
<label class="remember" for="remember">
<input type="checkbox" id="remember" />Remember me</label>
</div>
<div class="clearfix"></div>
<p class="center span5">
<button type="submit" class="btn btn-primary">登录</button>
</p>
</fieldset>
</form>
</body>
</html>
package struts2;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import Gen.cookieuitl;
import com.yxwl.model.*;
import com.yxwl.bll.*;
@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {
private String Username;
private String Password;
@Override
public String execute() throws Exception
{
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("gb2312");
this.Username=request.getParameter("name");
this.Password=request.getParameter("password");
yxwl_userLog userLog=null;
userLog=yxwl_userManager.GetUserLog(Username);
if(userLog!=null){
//如果password 相同
if(this.Password.equals(userLog.getuserPassword())) {
String x=userLog.getyxwl_id();
cookieuitl.addCookie(response, "yxwl_Login", x, 3600);return Action.SUCCESS;
}else {
return Action.ERROR;
}
}else {
return Action.ERROR;
}
}
}
cookieuitl.addCookie(response, "yxwl_Login", x, 3600);