您的位置:首页 > Web前端 > JavaScript

用户管理系统实战【Servlet+jsp项目实战】

2019-05-25 22:18 288 查看

一、三天免登陆(部分代码)

[code]package com.bjsxt.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bjsxt.pojo.User;
import com.bjsxt.service.LoginService;
import com.bjsxt.service.impl.LoginServiceImpl;

public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式:
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
String uname=req.getParameter("uname");
//uname=new String(uname.getBytes("iso8859-1"),"utf-8");//使用String进行数据重新编码
String pwd=req.getParameter("pwd");
System.out.println(uname+":"+pwd);
//处理请求信息
//获取业务层对象
LoginService ls=new LoginServiceImpl();
User u=ls.checkLoginService(uname, pwd);
System.out.println(u);
//响应处理结果
if(u!=null){
//创建Cookie信息实现三天免登录。
Cookie c=new Cookie("uid", u.getUid()+"");
//设置Cookie的有效期
c.setMaxAge(3*24*3600);
c.setPath("/login/ck");
//添加Cookie信息
resp.addCookie(c);
//请求转发
//req.getRequestDispatcher("main").forward(req, resp);
//重定向
resp.sendRedirect("/login/main");
return;
}else{
//使用request对象实现不同Servlet的数据流转
req.setAttribute("str", "用户名或密码错误");
//使用请求转发
req.getRequestDispatcher("page").forward(req, resp);
return;
}
}
}
[code]package com.bjsxt.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bjsxt.pojo.User;
import com.bjsxt.service.LoginService;
import com.bjsxt.service.impl.LoginServiceImpl;
/**
* Cookie信息校验
* 		判断请求中是否携带正确的Cookie信息
* 		如果有则校验Cookie信息是否正确
* 			如果校验正确则直接响应主页面给用户
* 			如果校验不正确则响应登录页面给用户
* 		没有则请求转发给登录页面
* @author MyPC
*/
public class CookieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
//获取Cookie信息
Cookie[] cks=req.getCookies();
//处理请求信息
if(cks!=null){
//遍历Cookie信息
String uid="";
for(Cookie c:cks){
if("uid".equals(c.getName())){
uid=c.getValue();
}
}
//校验UID是否存在
if("".equals(uid)){
//请求转发
req.getRequestDispatcher("page").forward(req, resp);
return;
}else{
//校验UID用户信息
//获取业务层对象
LoginService ls=new LoginServiceImpl();
User u=ls.checkUidService(uid);
if(u!=null){
//重定向
resp.sendRedirect("/login/main");
return;
}else{
//请求转发
req.getRequestDispatcher("page").forward(req, resp);
return;
}
}

}else{
//响应处理结果
//请求转发
req.getRequestDispatcher("page").forward(req, resp);
return;
}
}
}

二、后台管理系统(部分代码)

[code]package com.bjsxt.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

import com.bjsxt.pojo.User;
import com.bjsxt.service.UserService;
import com.bjsxt.service.impl.UserServiceImpl;
/**
* Servlet重定向路径总结:
* 	相对路径:从当前请求的路径查找资源的路径
* 		相对路径如果servlet的别名中包含目录,会造成重定向资源查找失败。
* 	绝对路径:第一个/表示服务器根目录
* 		/虚拟项目名/资源路径
*
* Servlet请求转发:
* 		/表示项目根目录。
* 		req.getRequestDispatcher("/资源路径").forward(req, resp);
*
* @author MyPC
*
*/
public class UserServlet extends HttpServlet {
//声明日志对象
Logger logger =Logger.getLogger(UserServlet.class);
//获取service层对象
UserService us=new UserServiceImpl();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取操做符
String oper=req.getParameter("oper");
if("login".equals(oper)){
//调用登录处理方法
checkUserLogin(req,resp);
}else if("out".equals(oper)){
//调用退出功能
userOut(req,resp);
}else if("pwd".equals(oper)){
//调用密码修改功能
userChangePwd(req,resp);
}else if("show".equals(oper)){
//调用显示所有用户功能
userShow(req,resp);
}else if("reg".equals(oper)){
//调用注册功能
userReg(req,resp);
}else{
logger.debug("没有找到对应的操作符:"+oper);
}
}
//注册用户
private void userReg(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//获取请求信息
String uname=req.getParameter("uname");
String pwd=req.getParameter("pwd");
String sex=req.getParameter("sex");
int age=req.getParameter("age")!=""?Integer.parseInt(req.getParameter("age")):0;
String birth=req.getParameter("birth");
String[] bs=null;
if(birth!=""){
bs=birth.split("/");
birth=bs[2]+"-"+bs[0]+"-"+bs[1];
}
System.out.println(uname+":"+pwd+":"+sex+":"+age+":"+birth);
User u=new User(0, uname, pwd, sex, age, birth);
//处理请求信息
//调用业务层处理
int index=us.userRegService(u);
//响应处理结果
if(index>0){
//获取session
HttpSession hs=req.getSession();
hs.setAttribute("reg", "true");
//重定向
resp.sendRedirect("/mg/login.jsp");
}

}
//显示所有的用户信息
private void userShow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//处理请求
//调用service
List<User> lu=us.userShowService();
//判断
if(lu!=null){
//将查询的用户数据存储到request对象
req.setAttribute("lu",lu);
//请求转发
req.getRequestDispatcher("/user/showUser.jsp").forward(req, resp);
return;
}

}
//用户修改密码
private void userChangePwd(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//获取数据
String newPwd=req.getParameter("newPwd");
//从session中获取用户信息
User u=(User)req.getSession().getAttribute("user");
int uid=u.getUid();
//处理请求
//调用service处理
int index=us.userChangePwdService(newPwd,uid);
if(index>0){
//获取session对象
HttpSession hs=req.getSession();
hs.setAttribute("pwd","true");
//重定向到登录页面
resp.sendRedirect("/mg/login.jsp");
}
}
//用户退出
private void userOut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//获取session对象
HttpSession hs=req.getSession();
//强制销毁session
hs.invalidate();
//重定向到登录页面
resp.sendRedirect("/mg/login.jsp");
}
//处理登录
private void checkUserLogin(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
//获取请求信息
String uname=req.getParameter("uname");
String pwd=req.getParameter("pwd");
//处理请求信息
//校验
User u=us.checkUserLoginService(uname, pwd);
if(u!=null){
//获取session对象
HttpSession hs=req.getSession();
//将用户数据存储到session中
hs.setAttribute("user", u);
//重定向
resp.sendRedirect("/mg/main/main.jsp");
return;
}else{
//添加标识符到request中
req.setAttribute("flag",0);
//请求转发
req.getRequestDispatcher("/login.jsp").forward(req, resp);
return;
}
//响应处理结果
//直接响应
//请求转发

}

}
[code]package com.bjsxt.service.impl;

import java.util.List;

import org.apache.log4j.Logger;

import com.bjsxt.dao.UserDao;
import com.bjsxt.dao.impl.UserDaoImpl;
import com.bjsxt.pojo.User;
import com.bjsxt.service.UserService;

public class UserServiceImpl implements UserService{

//声明日志对象
Logger logger=Logger.getLogger(UserServiceImpl.class);
//声明Dao层对象
UserDao ud=new UserDaoImpl();
//用户登录
@Override
public User checkUserLoginService(String uname, String pwd) {
//打印日志
logger.debug(uname+"发起登录请求");
User u=ud.checkUserLoginDao(uname, pwd);
//判断
if(u!=null){
logger.debug(uname+"登录成功");
}else{
logger.debug(uname+"登录失败");
}
return u;
}
//修改用户密码
@Override
public int userChangePwdService(String newPwd, int uid) {
logger.debug(uid+":发起密码请求");
int index=ud.userChangePwdDao(newPwd,uid);
if(index>0){
logger.debug(uid+":密码修改成功");
}else{
logger.debug(uid+":密码修改失败");
}
return index;
}
//获取所有的用户信息
@Override
public List<User> userShowService() {
List<User> lu=ud.userShowDao();
logger.debug("显示所有用户信息:"+lu);
return lu;
}
//用户注册
@Override
public int userRegService(User u) {
return ud.userRegDao(u);
}

}
[code]<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎登录后台管理系统</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src="js/jquery.js"></script>
<script src="js/cloud.js" type="text/javascript"></script>

<script language="javascript">
$(function(){
$('.loginbox').css({'position':'absolute','left':($(window).width()-692)/2});
$(window).resize(function(){
$('.loginbox').css({'position':'absolute','left':($(window).width()-692)/2});
})
});
</script>

</head>

<body style="background-color:#df7611; background-image:url(images/light.png); background-repeat:no-repeat; background-position:center top; overflow:hidden;">

<div id="mainBody">
<div id="cloud1" class="cloud"></div>
<div id="cloud2" class="cloud"></div>
</div>

<div class="logintop">
<span>欢迎登录后台管理界面平台</span>
</div>

<div class="loginbody">

<span class="systemlogo"></span>
<br />
<%
//声明java代码块进行错误提示语的逻辑校验
Object obj=request.getAttribute("flag");
if(obj!=null){
%>
<div style="text-align: center;">
<span style="font-size: 15px;color:darkred;font-weight: bold;">用户名或者密码错误</span>
</div>
<%} %>
<%
//声明java代码块进行密码修改提示语
Object pwd=session.getAttribute("pwd");
if(pwd!=null){
%>
<div style="text-align: center;">
<span style="font-size: 15px;color:darkred;font-weight: bold;">密码修改成功</span>
</div>
<%}
session.removeAttribute("pwd");
%>
<%
//声明java代码块进行注册提示语
Object reg=session.getAttribute("reg");
if(reg!=null){
%>
<div style="text-align: center;">
<span style="font-size: 15px;color:darkred;font-weight: bold;">注册成功</span>
</div>
<%}
session.removeAttribute("reg");
%>
<div class="loginbox loginbox1">
<form action="user" method="post">
<input type="hidden" name="oper" value="login" />
<ul>
<li></li>
<li><input name="uname" type="text" placeholder="用户名" class="loginuser"  /></li>
<li><input name="pwd" type="password" placeholder="密码" class="loginpwd"  /></li>
<li class="yzm">
<span><input name="" type="text" value="验证码" onclick="JavaScript:this.value=''"/></span><cite>X3D5S</cite>
</li>
<li><input name="" type="submit" class="loginbtn" value="登录"  onclick="javascript:window.location='main.html'"  /><label><a href="user/reg.jsp">注册</a></label><label><a href="#">忘记密码?</a></label></li>
</ul>
</form>

</div>

</div>

<div class="loginbm">版权所有 尚学堂  <a href="http://www.uimaker.com">uimaker.com</a>  仅供学习交流,勿用于任何商业用途,交流QQ:189088900878</div>

</body>

</html>

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: