![0b3d0b13f57b32af810c1644aa3d1679.png](https://i-blog.csdnimg.cn/blog_migrate/8930dcbbe15620146df7ead0948b12dd.jpeg)
搭建项目框架
![1c9b3b1e940beb92d7f15dbde8cd734c.png](https://i-blog.csdnimg.cn/blog_migrate/b1e3ed8cc12e74403d6a841cf4408a9d.jpeg)
1.创建项目
![7b599315eda780a0e1866182724f86a8.png](https://i-blog.csdnimg.cn/blog_migrate/e20c5a2354b6bcf2997607076219213c.jpeg)
首先把工作空间的编码格式改为UTF-8 并新建web项目为sxtoa
![8e79bb5655b7a87571bba42efbbc0b63.png](https://i-blog.csdnimg.cn/blog_migrate/2773b7797f84b7f607be522f7da891db.jpeg)
2.创建包和文件夹
src目录下:
- 创建com.bjsxt.dao.impl
- 创建com.bjsxt.service.impl
- 创建com.bjsxt.entity(实体类)
- 创建com.bjsxt.servlet(servlet类)
- 创建com.bjsxt.util(工具类)
- 创建com.bjsxt.filter(过滤器)
- 在src下创建测试代码包test并创建com.bjsxt.test 目的是为了开发方便测试
![a5115f5a80ca3b416d3ac7737d845882.png](https://i-blog.csdnimg.cn/blog_migrate/7bc9f6b7d2fdf70e2cf56b49b67c1e18.jpeg)
![d07e874dba88d7ccd4c99e8f42881cc9.png](https://i-blog.csdnimg.cn/blog_migrate/503fc00a2114171d317a076940bc697d.jpeg)
同名包可以但是不能有同名类,因为最终都要合并到同一个class文件内
WebRoot目录下:
- 创建一个文件夹名为system(部门,岗位,用户)
- 创建一个文件夹名为duty(考勤)
- 创建一个文件夹名为expense(报销单)
- 创建一个文件夹名为inout(收支管理)
3.加入jar包到lib文件夹
![d9f660b93461b1328db78cdbc4661b61.png](https://i-blog.csdnimg.cn/blog_migrate/69a86c4be66934ba36bbefbd2d41c9e9.jpeg)
![26068339464918148bc79d0658111101.png](https://i-blog.csdnimg.cn/blog_migrate/beda8712f05a4d2816dacfa530bcd15b.jpeg)
4.加入工具类
4.加入工具类
![7e4648ae5a43fbba3cc8215d9a6c38b3.png](https://i-blog.csdnimg.cn/blog_migrate/01dfc32c060eee03bc17f3f5f53514cd.jpeg)
5.加入过滤器到filter文件(后期需要修改)
package com.bjsxt.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AuthFilter implements Filter{
@Override
public void init(FilterConfig filterconfig) throws ServletException {
// TODO Auto-generated method stub
}
/**
* 过滤路径是 /servlet/* *.jsp
* 某些jsp应该排除在外 login.jsp register.jsp index.jsp
* 某些servlet应该排除在外 servlet/UserServlet?method=login servlet/UserServlet?method=register
*
*
*/
@Override
public void doFilter(ServletRequest request,
ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httprequest = (HttpServletRequest)request;
HttpServletResponse httpresponse = (HttpServletResponse)response;
//1.请求到达目标资源之前的预处理操作
//http://127.0.0.1:8081/myjspjstlel/admin2/login.jsp
http://127.0.0.1:8081/myjspjstlel/admin2/register.jsp
//http://127.0.0.1:8081/myjspjstlel/index.jsp
//http://127.0.0.1:8081/myjspjstlel/servlet/UserServlet?method=login
//http://127.0.0.1:8081/myjspjstlel/servlet/UserServlet?method=register`
String uri = httprequest.getRequestURI();
String qs = httprequest.getQueryString(); // 如果 没有查询字符串,就是null
int n1 = uri.indexOf("login.jsp");//>=0 存在
int n2 = uri.indexOf("register.jsp");
int n3 = uri.indexOf("index.jsp");
int n4 = -1;
int n5 = -1;
int n6 = -1;
if(qs != null){
n4 = qs.indexOf("login");
n5 = qs.indexOf("register");
n6 = qs.indexOf("checkUserId");
}
if(n1>=0 || n2>=0 ||n3>=0 ||n4>=0 ||n5>=0 || n6>=0 ){ //需要排除在外的资源
//放行
chain.doFilter(request, response);
}else{
//判断用户是否登录,如果登录,就允许访问,如果没有登录,就重定向到登录页面
Object user = httprequest.getSession().getAttribute("user");
if(user != null){
//就允许访问,调用下一个过滤器或者目标资源
chain.doFilter(request, response);
//3.响应离开目标资源后的后处理操作
}else{
//就重定向到登录页面
httpresponse.sendRedirect(httprequest.getContextPath()+"/admin2/login.jsp");
}
}
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
6.加入界面原型
![a108ef0a588bd859b8a88793a515361a.png](https://i-blog.csdnimg.cn/blog_migrate/e51b4e21e141fc858d8dfb69a2848982.jpeg)
忽略js中的报错
![09ecb973e1dc224758665eedb0a1b58d.png](https://i-blog.csdnimg.cn/blog_migrate/d6b7600bf454a3f3a270e54e008a3087.jpeg)
7.部署项目并测试
![71ce34db1786cf9a08849e6b908f90db.png](https://i-blog.csdnimg.cn/blog_migrate/29fa24a395bb25e0817627b7b66bd38d.jpeg)
测试完毕 页面和各功能正常使用