<form action ="<%=request.getContextPath()%>/UserWXPServlet" method = "post"> 用户名<input type = "text" name = "username"/><br/> 密码<input type = "text" name = "password"/><br/> <input type = "submit" value ="提交"/> </form>
private String username;
private String password;
public User() {
}
public User(String user, String password) {
super();
this.username = user;
this.password = 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;
}
public boolean dologin(User user){
Properties pro = new Properties();
InputStream is = UserWXPServlet.class.getClassLoader().getResourceAsStream("user_wxp.properties");
String password = null;
System.out.println(is+"--------->"+pro);
if(user==null){
return false;
}
try {
pro.load(is);
password = pro.getProperty(user.getUsername());
if(user.getPassword()!=null&&user.getPassword().equals(password)){
System.out.println("登陆成功");
return true;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}
/**
* 每一个用户存放一个session。便于各种操作!!!
*/
public static Map<String, HttpSession> mapSession = new HashMap<String,HttpSession>();
用户退出的代码(必须飞废除session或是remove相应的用户对象):
[java] view plain copy
public static void userLogout(String username){
if(mapSession.get(username)!=null){
//得到需要退出的用户的session
HttpSession session = mapSession.get(username);
//在map<username,session>中移除该用户,记住想要退出该用户,必须将该session废除或是remove掉user
mapSession.remove(username);
//得到session的所属性合集
Enumeration e = session.getAttributeNames();
//删除所有属性
while(e.hasMoreElements()){
String sessionName = (String) e.nextElement();
session.removeAttribute(sessionName);
}
//废除该session
session.invalidate();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = new User(username, password);
UserService userService = new UserService();
HttpSession session = request.getSession();
if(userService.dologin(user)){
//登录成功之后将用户插入到session中
session.setAttribute("user", user);
if(cheackSession(username)){
//如果该session在此之前已经存在,则将该用户进行退出操作
DbUtil.userLogout(username);
}
//将新的session存放到map<username,session>中
DbUtil.mapSession.put(username, session);
//操作成功,跳转,此处最好为重定向,让别人知道登录成功了
request.getRequestDispatcher("login").forward(request, response);
return ;
}
//此处跳转到失败页面,如果读者有兴趣,可以自行添加
}
/**
* 检查是否已经含有此session
* @param username
* @return true:已经存在,该删! false:未存在
*/
private boolean cheackSession(String username){
HttpSession session = DbUtil.mapSession.get(username);
if(session!=null){
return true;
}
return false;
}
<servlet> <description> 用于测试 ,用户不可重复登录 </description> <display-name>UserWXPServlet</display-name> <servlet-name>UserWXPServlet</servlet-name> <servlet-class>com.fingard.rabbit.wxp_test.Servlet.UserWXPServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserWXPServlet</servlet-name> <url-pattern>/UserWXPServlet</url-pattern> </servlet-mapping>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有