0
点赞
收藏
分享

微信扫一扫

JavaWeb JSTL(10)

_LEON_ 2022-01-08 阅读 71

JSTL
一、JSTL简介:

JSTL全名为JavaServer Pages Standard Tag Library,中文名称为JSP标准标签函数库,目前最新的版本为1.2。JSTL是由JCP(Java Community Process)所指定的标准规格,它主要提供给Java Web开发人员一个标准通用的标签函数库。

JSTL所提供的标签函数库主要分为五大类:
(1)核心标签库 (Core tag library)
(2)I18N 格式标签库 (I18N-capable formatting tag library)
(3)SQL 标签库 (SQL tag library)
(4)XML 标签库 (XML tag library)
(5)函数标签库 (Functions tag library

核心标签库 (Core tag library)主要有以下几种:

1、表达式标签:
(1)<c:out>:主要用来显示数据的内容,就像是 <%= scripting-language %> 一样
(2)<c:set>:主要用来将变量储存至JSP范围中或是JavaBean的属性中
(3)<c:remove>:主要用来移除变量
(4)<c:catch>:主要用来处理产生错误的异常状况,并且将错误信息储存起来(用的少)

2、流程控制:
(1)<c:if>:用途和我们一般在程序中用的if 一样
(2):本身只当做 <c:when> 和 <c:otherwise> 的父标签
(3)/:使用<c:when>和<c:otherwise>来做流程控制时,两者都必须为<c:choose>的子标签(类似于switch···case···)

3、迭代操作:
:循环遍历,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c:forEach>的本体内容。
:用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的。

二、核心标签库:

包含Web应用的常见工作, 比如:循环、表达式赋值、 基本输入输出等。
1、表达式标签:
(1)<c:out>:主要用来显示数据的内容,就像是 <%= scripting-language %> 一样
(2)<c:set>:主要用来将变量储存至JSP范围中或是JavaBean的属性中
(3)<c:remove>:主要用来移除变量
(4)<c:catch>:主要用来处理产生错误的异常状况,并且将错误信息储存起来(用的少)
(5)<c:out>标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
      out.print("dashuju");
    response.getWriter().print("dashuju2005");
    %>
    
    <c:out value="hello jsp"></c:out>
    <br/>
    
    <c:out value="${param.username}" default="dashuju2005" escapeXml="true">
    </c:out>
</body>
</html>

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
     <%--第1个out标签 --%>
     userName属性的值为:
     <c:out value="${parm.username}" default="unknown" />
     <br>
     <%--第2个out标签 --%>
     userName属性的值为:
     <c:out value="${param.username}">
          unknown
     </c:out>
</body>
</html>

在这里插入图片描述
Filter过滤器
Filter 不是一个servlet,它不能产生一个response,但是它能够在一个request到达servlet之前预处理request,也可以在 response离开servlet时处理response。换句话说,filter其实是客户端与servlet中间的一个传递者,并且它可以对要传递 的东西进行修改。过滤作用,对从客户端向服务器端发送的请求进行过滤,也可以对服务器端返回的响应进行处理。它使用户可以改变一个request和修改一个 response.。
在这里插入图片描述
实现filter

package cn.itcast.chapter08.filter;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Myservlet
 */
@WebServlet("/Myservlet")
public class Myservlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().print("hello dashuju--------------<br/>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

拦截MyServlet

package cn.itcast.chapter08.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;

/**
 * Servlet Filter implementation class MyFilter
 */
@WebFilter("/MyFilter")
public class MyFilter implements Filter {

    /**
     * Default constructor. 
     */
    public MyFilter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().print("进入filter");
		// pass the request along the filter chain
        //chain.doFilter(request, response);
		String name=request.getParameter("name");
		System.out.println(name);
		if("dashuju".equals(name)) {
			
			chain.doFilter(request, response);
			
		}
		
		response.getWriter().print("退出filter");
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}
举报

相关推荐

0 条评论