标签:cte override xsd enc sch art java system config
1.九大内置对象:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page isErrorPage="true" %><!-- 默认是隐藏的false --> <%@ page session="true" %><!-- session默认是显示的true --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP ‘index.jsp‘ starting page</title> </head> <body> <% application.setAttribute("name", "zhangsan"); %> <%=session.getAttribute("name")%> <pre> jsp的四大作用域:servlet和servlet之间的参数传递 setAttribute()// 存储变量 getAttribute()// 获取变量 removeAttribute()// 移除变量 application:(应用)(一般情况下,存储的是字典表中的信息) 就作用于整个项目,存储一些和项目相关的信息(比如省市区这些信息)(字典表) 当服务器(tomcat)启动的时候application就已经被创建并初始化,而且所有的用户都共享同一个application 直到服务器(tomcat)关闭时候,才会被销毁 作用域:整个项目 生命周期:当服务器(tomcat)启动的时候,就会被创建,当服务器关闭的时候就会被销毁 request:(一次请求)(一般情况下,存储一些需要请求转发的信息) 作用域:一次请求 生命周期:一次请求以及所有通过请求转发(request.getRequestDispatcher().forward(request, response))的页面,直到页面跳转和重定向 session:(一次会话)(一般情况下,存储和用户相关的信息) 作用域:请求和响应 生命周期:当发送一次请求,session就会被创建,当关闭浏览器或者关闭服务器的时候session就会被销毁 pageContext:(页面的上下文)(就是当前页面)(一般情况下,存储临时变量)(不使用) 作用域:当前页面 生命周期:从页面访问开始到当页面跳转结束 pageContext召唤另外八个神兽 从小到大排序: pageContext--->request--->session--->application 九大内置对象(内键对象): 直接可以使用,无需创建的对象就称之为内置对象 *request 请求信息 *response 响应信息response.getWriter().print(); *session 一次会话(一般存储用户相关的信息) (*)application 作用于整个项目 pageContext 页面上下文(和页面有关的数据(临时数据)) config(绝对不能动(当前jsp的配置信息(servlet的配置信息))) 配置信息 out 打印的信息 page 当前页面的信息 exception:默认是隐藏的,如果需要显示< % @ page isErrorPage="true" % > 异常信息 4(作用域)+2(输出)+3(打酱油) pageContext--request--session--application
response--out
page--config--exception </pre> <% request.setAttribute("name", "zhangsan"); session.setAttribute("name", "lisi"); application.setAttribute("name", "wangwu"); pageContext.setAttribute("name", "zhaoliu"); // 如果使用el表达式取值的情况下,pageContext--${pageScore.property } %> ${pageScope.name } </body> </html>
2.计算服务器访问次数:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP ‘app.jsp‘ starting page</title> </head> <body> <% Integer count = (Integer) application.getAttribute("count"); if (count == null) { count = 1; } else { count++; } application.setAttribute("count", count); %> 我一共被访问<%=application.getAttribute("count")%>次 </body> </html>
3.filter:
index主页:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP ‘index.jsp‘ starting page</title> </head> <body> <pre> filter: 过滤器:通过访问路径进行拦截 作用:防止恶意访问,未登录的情况下访问用户信息,用户订单。。 生命周期: 当服务器(tomcat)启动的时候,就被初始化,当服务器关闭的时候会被销毁,有且只被创建一个对象(单例模式) 建立Class(FilterClass)--->实现Filter接口(javax.servlet.Filter)---->重写init方法,destroy方法,doFilter方法---->在doFilter方法中chain.doFilter(request, response):当第一次被过滤后放行,在chain.doFilter()方法之后的代码会进行二次过滤 特点:如果有多个filter同时过滤的话,正着进倒着出 加载顺序:在web.xml中配置先后顺序进行加载 如果一个项目有多个配置: filter配置顺序: 首先一定要配置filter,其次配置listener(监听:监听一定要配在filter之后,servlet之前),最后配置servlet </pre> </body> </html>
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>20170728_filter</display-name> <filter> <filter-name>shiwei</filter-name> <filter-class>cn.zzsxt.lee.web.filter.ShiweiFilter</filter-class> </filter> <filter-mapping> <filter-name>shiwei</filter-name> <!-- <url-pattern>/visitKing.huanggong</url-pattern>/*, *.xxx, /xxx, /xxx/* <url-pattern>/visitKing.weifusifang</url-pattern> <url-pattern>/visitKing.yuhuayuan</url-pattern> <url-pattern>/visitKing.tiantan</url-pattern> --> <servlet-name>king</servlet-name> </filter-mapping> --------------------------------------------------------------------------------------------------------- <filter> <filter-name>wuqi</filter-name> <filter-class>cn.zzsxt.lee.web.filter.WuqiFilter</filter-class> </filter> <filter-mapping> <filter-name>wuqi</filter-name> <url-pattern>/*</url-pattern> <!-- /*, *.xxx, /xxx, /xxx/* --> </filter-mapping> ---------------------------------------------------------------------------------------------------------- <filter> <filter-name>anqi</filter-name> <filter-class>cn.zzsxt.lee.web.filter.AnqiFilter</filter-class> </filter> <filter-mapping> <filter-name>anqi</filter-name> <url-pattern>*.huanggong</url-pattern> <!-- /*, *.xxx, /xxx, /xxx/* -->访问方式 </filter-mapping> <servlet> <servlet-name>king</servlet-name> <servlet-class>cn.zzsxt.lee.web.servlet.KingServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>king</servlet-name> <url-pattern>/visitKing.huanggong</url-pattern> <url-pattern>/visitKing.weifusifang</url-pattern> <url-pattern>/visitKing.yuhuayuan</url-pattern> <url-pattern>/visitKing.tiantan</url-pattern> </servlet-mapping> <servlet> <servlet-name>queen</servlet-name> <servlet-class>cn.zzsxt.lee.web.servlet.QueenServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>queen</servlet-name> <url-pattern>/visitQueen.huanggong</url-pattern> </servlet-mapping> <servlet> <servlet-name>nine</servlet-name> <servlet-class>cn.zzsxt.lee.web.servlet.NineServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>nine</servlet-name> <url-pattern>/visitNine.huanggong</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Filter Class:
package cn.zzsxt.lee.web.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; // filter特点:过滤的时候是正着进去,倒着出来 // filter特点:根据web.xml配置的先后顺序进行加载 // filter特点:在web.xml中,首先要对filter进行配置,然后再对Listener(监听:监听一定要配置在filter之后和servlet之前)进行配置,最后对servlet进行配置 public class WuqiFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("只要你一进来,我就要检查你身上是否携带武器"); chain.doFilter(request, response);// 如果没有这个方法,需要访问的路径就永远无法访问 // 在chain.doFilter()以后的代码,是为了进行二次过滤 System.out.println("你现在要出去啦,别带着宫女跑了"); } @Override public void init(FilterConfig config) throws ServletException { System.out.println("你进来了,我就要上班了"); } @Override public void destroy() { System.out.println("我也很累,我需要换岗"); } }
Servlet:
package cn.zzsxt.lee.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class KingServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("测试"); } }
java:(九大内置对象,计算服务器访问次数,filter过滤器)
标签:cte override xsd enc sch art java system config
原文地址:http://www.cnblogs.com/kuangzhisen/p/7252274.html