您的位置:首页 > Web前端 > JavaScript

jsp基础

2015-12-05 20:25 585 查看
Jsp基础语法

 

在JSP页面中执行的java代码。

<% Java代码%>

 

在JSP页面中定义变量或者方法

<%! Java代码 %>

 

在JSP页面中执行的表达式

<%= 表达式 %>

 

JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。

out request response session application pagepageContext exception config

 

out对象是JspWriter类的实例,是向客户端输出内容常用的对象。

println(); clear(); clearBuffer(); flush();getBufferSize(); getRemaining(); isAutoFlush(); close();

 

request对象是HttpServletRequest类的实例。客户端的请求信息被封装在request对象中。

String getParameter(String name); String[]getParameterValues(String name); void setAttribute(String, Object); objectgetAttribute();

 

response对象包含了响应客户请求的有关信息,具有页面作用域。

String getCharacterEncoding(); voidsetContentType(); PrintWriter getWriter(); sendRedirect(String location);

 

请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次请求的对象不会保存。

请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp); 是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。

 

session表示客户端与服务器的一次会话

Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间

session对象在第一个JSP页面被装载时被自动创建,完成会话期管理

long getCreationTime(); public StringgetId(); public Object setAttribute(String name, Object value); public ObjectgetAttribute(String name); String[] getValueNames(); intgetMaxInactiveInterval()

 

session的生命周期

销毁三种方式:session.invalidate();过期,服务器重新启动

 

application对象实现了用户间数据的共享,可存放全局变量。服务器的启动和关闭决定了application对象的生命。

public void setAttribute(String name,Object value); public Object getAttribute(String name); EnumerationgetAttributeNames(); String getServerInfo();

 

page对象就是指向当前JSP页面本身,是java.lang.Object类的实例。

 

pageContext对象提供了对JSP页面内所有对象及名称空间的访问。pageContext对象的本类名也叫pageContext。

Object getPage(); void forward(StringrelativeUrlPath); void include(String relativeUrlPath)

 

Config对象是一个Servlet初始化时,JSP引擎向它传递信息用的。

 

JSP动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法。

 

在JSP页面中使用Javabeans

1.      像使用普通java类一样,创建javabean实例。

2.      在JSP页面中通常使用jsp动作标签使用javabean。

<jsp:useBeanid=”” class=”” scope=”” />

 

<jsp:setPropertyname = “java实例名” property= “*” />

<jsp:setPropertyname = “” property = “javabean属性名” />

<jsp:setPropertyname = “” property = “javabean属性名” value = “” />

<jsp:setPropertyname = “” property = “javabean属性名” param = “request对象中的参数名” />

 

<jsp:getProperty name = “” property = “” />

                                                                                   

Javabean的四个作用域范围

page, request,session, application

 

 

Jsp中创建与使用Cookie

Cookie newCookie= new Cookie(String key, Object value);

response.addCookie(newCookie);

Cookie[] cookies= request.getCookies();

 

 

include指令

<%@ includefile=”URL” %>

 

include动作

<jsp:includepage=”URL” flush=”true|false” />

 

forward动作

<jsp:forwardpage=”URL” />

 

param动作

<jsp:param name=”参数名” value=”参数值”>

 

 

 

Servlet

Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程。

 

Servlet生命周期

1.      初始化阶段,调用init()方法。

2.      响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法。

3.      终止阶段,调用destroy()方法。

 

在下列时刻Servlet容器装载Servlet:

Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,数字越小表示优先级别越高。

在Servlet容器启动后,客户端首次向Servlet发送请求。

Servlet类文件被更新后,重新装载Servlet。

 

Servlet路径跳转

<a href=”servlet/HelloServlet”>访问</a><br>

<ahref=”<%=path%>/servlet/HelloServlet”>访问</a><br>

response.sendRedirect(request.getContextPath()+ “test.jsp”);

request.getRequestDispather(“test.jsp”).forward(request,response);

request.getRequestDispather(“../test.jsp”).forward(request,response);

 

 

过滤器

过滤器是一个服务端的组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。

 

过滤器的分类:

request用户直接访问页面时,Web容器将会调用过滤器,

forward目标资源是通过RequestDispather的forward访问时,该过滤器将被调用,

include目标资源是通过RequestDispather的include方法调用时,过滤器将被调用,

error目标资源是通过声明式异常处理机制调用时,过滤器将被调用。

async支持异步处理

 

@WebFilter用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。

 

 

Web监听器

Servlet中定义的一种特殊类,用户监听ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,用于监听域对象的属性发生修改的事件。

 

启动顺序:监听器,过滤器,Servlet

 

ServletContextListenercontextInitialized(); contextDestroyed();

 

HttpSessionListener  sessionCreated(); sessionDestroyed();

统计在线人数,记录访问日志

 

ServletRequestListener requestInitialized()requestDestroyed()

读取参数,记录访问历史

 

ServletContextAttributeListener  attributeAdded(); attributeRemoved();attributeReplaced();

 

Session钝化机制。本质就在于把服务器中不经常使用的Session对象暂时序列化到系统文件系统或是数据库系统中,当被使用时反序列化到内存中,整个过程由服务器自动完成。

Session钝化机制由SessionManager管理。可以配置主流内存的Session对象数目,将不常使用的Session对象保存到文件系统或数据库。

Tomcat提供两个钝化驱动类,FileStore和JDBCstore

 

HttpSessionBindingListener  valueBound(); valueUnbound();

HttpSessionActivationListener  sessionWillPassivate(); sessionDidActivate();

 

Servlet3.0下监听器的用法

@WebListener用于将类声明为监听器,必须实现至少一个接口

<listener>

<listener-class>footmark.servlet.SimpleListener</listener-class>

</listener>

@WebListener(“a demo listener”)

Public class SimpleListener impliementsServletContextListener{}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: