栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 2022.7.28课程总结(JAVAWEB)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 2022.7.28课程总结(JAVAWEB)

一、JSTL 1.1 概念 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。 首先,将jstl jar包放到web app libraries下,这样就导入jar包了

 1.2 使用 在一个jsp下,taglib标签注明引入的标签,在使用引入标签的方法标签进行使用,页面显示效果如下
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   

你好

${sessionScope.text}

	
		
ID账号密码
${user.id }${user.username}${user.userpass}
请登录 ${LOGINUSER.username} ${temp }

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>




Insert title here



	${str }



	
		这是一个数字
	
		
		这是一个文本
	
	
		我也不知道是啥
	





 	${row.username }
 



 

 二、jsp生命周期

 

三、Filter 过滤

 

以LoginFilter为例,当访问到/pages/cart时,就会执行该filter,根据条件判断是否通过,当通过时,执行 chain.doFilter(request, response); 通过过滤 执行下一阶段 @WebFilter("/pages/cart")
public class LoginFilter implements Filter{
    public void destroy() {
        //销毁时执行的方法
    }
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {
        //登陆验证? 登陆不登陆有何区别 
        //登录后的账号的session中存在LOGINUSER的值
        //获取session对象,从中取LOGINUSER对应的值,取得到就登陆过
        if(req instanceof HttpServletRequest) {
            HttpServletRequest request=(HttpServletRequest) req;
            HttpServletResponse response=(HttpServletResponse) resp;
            HttpSession session=request.getSession();
            Object obj=session.getAttribute("LOGINUSER");
            if(obj!=null) {
                chain.doFilter(request, response);
            }else {
                String path = request.getContextPath();
                String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
                response.sendRedirect(basePath+"index.html");
            }
        }
        return;
    }
    public void init(FilterConfig arg0) throws ServletException {
        //初始化的方法
    }

PageServlet是一个跳转器 过滤完就会执行到servlet,这里就执行到该servlet,然后通过servlet跳转到web-inf下的jsp文件
//跳转器
@WebServlet("/pages
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            String uri=request.getRequestURI();
            //xiangmu/page/cart
            int index=uri.lastIndexOf("/");
            //获取最后分路径
            String page=uri.substring(index+1);
            request.getRequestDispatcher("../WEB-INF/page/"+page+".jsp").forward(request, response);
}
} 在添加一个编码格式的过滤器,凡是经过/*的网页 都需要经过该过滤器,执行该过滤器的doFilter方法 @WebFilter("/*")
public class CharterFilter implements Filter{
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        //设置请求对象的编码格式
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
    }
    public void destroy() {}
    public void init(FilterConfig filterConfig) throws ServletException {} } 四、监听

 

以MySessionListener 为例,创建一个session监听器,当创建该session对象时,执行sessioncreated方法,销毁该session对象时,执行sessiondestroyed方法
@WebListener
public class MySessionListener implements HttpSessionListener,HttpSessionAttributeListener{

	public void sessionCreated(HttpSessionEvent se) {
		HttpSession session=se.getSession();
		ServletContext sc=session.getServletContext();
		Integer onlineNum=(Integer)sc.getAttribute("ONLINE_NUM");
		if(onlineNum==null) {
			sc.setAttribute("ONLINE_NUM", 1);                       
		}else {                                                                  
			sc.setAttribute("ONLINE_NUM", onlineNum+1);
		}	                                                                        
	}
	public void sessionDestroyed(HttpSessionEvent se) {
		HttpSession session=se.getSession();
		ServletContext sc=session.getServletContext();
		Integer onlineNum=(Integer)sc.getAttribute("ONLINE_NUM");
		sc.setAttribute("ONLINE_NUM", onlineNum-1);
		//System.out.println("=-----saiodjnioas");
	}
	@Override
	public void attributeAdded(HttpSessionBindingEvent event) {
		HttpSession session=event.getSession();
		ServletContext sc=session.getServletContext();
		Integer onlineNum=(Integer)sc.getAttribute("ONLINE_LOGIN_NUM");
		if("LOGINUSER".equals(event.getName())) {
			if(onlineNum==null) {
				sc.setAttribute("ONLINE_LOGIN_NUM", 1);
			}else {
				sc.setAttribute("ONLINE_LOGIN_NUM", onlineNum+1);
			}
		}
	}

	@Override
	public void attributeRemoved(HttpSessionBindingEvent event) {

		
	}

	@Override
	public void attributeReplaced(HttpSessionBindingEvent event) {
		
	}
五、一些html语句
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here
 



百度
空链接
空链接

34

h1标题大 h6标题小

段落

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号