Java WEB 复习
OriginHeart 2021-12-20 others
# Java WEB 复习
# 1. 过滤器
/**
* @author 逆光
* 实现登录拦截:
* 1.获取请求url
* 2.判断url是不是进登录页面
* 3.判断session里有没有user属性
* 4.根据session再做筛选
*
* */
@WebFilter("/*")
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
chain.doFilter(req,resp);
}
@Override
public void destroy() {
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 2. 监听器
@WebListener
public class MyListenter implements ServletContextListener, ServletRequestListener, HttpSessionListener {
//监听session对象
public void sessionCreated(HttpSessionEvent se) {
System.out.println("监听session对象被创建..." + se);
}
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("监听session对象被销毁..." + se);
}
//监听request对象
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("监听request对象被创建..." + sre);
}
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("监听request对象被销毁..." + sre);
}
//监听application对象
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("监听application对象被销毁..." + sce);
}
public void contextInitialized(ServletContextEvent sce) {
System.out.println("监听application对象被创建..." +sce);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 3. GET, POST 区别
# 4. JSP域对象及其作用
# 5. 会话技术,区别
从浏览器
访问服务器开始
,到访问服务器结束
,浏览器关闭为止
的这段时间内容产生的多次请求和响应
,合起来叫做浏览器和服务器之间的一次会话
Cookie 技术:Client
Session 技术:Server
Cookie 与 Session 的区别
- Session周期指的是不活动的时间,如果我们设置Session是10s,在10s内,没有访问session,session中属性失效,如果在9s的时候,你访问了session,则会重新计时
- 如果重启了tomcat,或者reload web应用,或者关机了,Session也会失效,我们也可以通过函数让Session失效,invalidate()该方法是让Session中的所有属性失效,常常用于安全退出
- 如果你希望某个Session属性失效,可以使用方法removeAttribute
- Cookie的生命周期就是按累积的时间来算的,不管用户有没有访问过Session
# 6. MVC 架构模式
Model
View
Controller
# 7. JSP中嵌套Java代码
<% %> <!-- 套代码块 -->
<%! %> <!-- 定义全局变量 -->
<%= %> <!-- 计算表达式的值 -->
1
2
3
2
3
# 8. Servlet
Servlet 生命周期
- init
- service
- doGet
- doPost
- destroy
代码
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/vets"); // 重定向
req.getRequestDispatcher("/index.jsp").forward(req,resp); // 请求转发
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 9. JSP
c:forEach
<c:forEach varStatus="i" var="vet" items="${requestScope.vets}">
<tr>
<td>${i.index+1}</td>
<td>${vet.name}</td>
</tr>
</c:forEach>
1
2
3
4
5
6
2
3
4
5
6