项目已上传码云:小朋友/JavaWeb 意见簿
知乎视频www.zhihu.com目录:
- 项目介绍
- 过滤器设计
- 控制器设计
- Dao 层设计
- 数据库设计
项目介绍:JavaWeb 初级小 demo,需要有 Java 基础,MVC 设计模式(Model,View,Controller),MySQL,JSP(jstl),Filter,Servlet,Tomcat
过滤器设计:
EncodingFilter.java
设计进出编码,防止乱码
package com.sanery.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.annotation.WebFilter;
@WebFilter("/*")
public class EncodingFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
// 上面是进来的过滤器
chain.doFilter(request, response); // 放行,进入下一个过滤器
// 下面是出去的过滤器
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
}
}
LoginFilter.java
设计页面访问验证用户是否已登录(过滤游客无法访问的页面),有必要时可以在 web.xml
中进行配置
package com.sanery.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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/*")
public class LoginFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
// 如果是登录页直接放行
if (request.getServletPath().equals("/login") || request.getServletPath().equals("/list")) {
chain.doFilter(request, response);
return;
}
HttpSession session = request.getSession();
Integer userid = (Integer) session.getAttribute("user_id");
if (userid == null) {
response.sendRedirect("login");
return;
}
// 放行
chain.doFilter(request, response);
}
}
控制器设计:
LoginServlet.java
用户登录通过这里访问 login