Jsp/Servlet总结

Jsp/Servlet总结

JSP中插入Java代码

<%=Java表达式%>输出Java表达式的值

<%!声明全局变量或方法%>

<%Java代码%>

注释

HTML注释: <!-- 注释内容 -->

注释可以在浏览器显示,注释中可以包括脚本,脚本会执行

JSP页面中使用

JSP注释: <%-- 注释内容 --%>

注释不会在浏览器显示,注释内容不会执行

JSP页面中使用

Java注释:///* … */ /** … */

只能使用在JSP3种脚本标记中。

JSP指令

JSP页面指令pageincludetaglib

JSP指令标识<%@指令 属性=xx%>

<%@page >%

pageEncoding=UTF-8//页面编码

import=java.util.*//导入jar

<%@ include file=“文件名”%>//静态包含,把包含文件的代码原封不动包含进去

<%@ taglib prefix=“前缀名” uri=“标签库uri%>

JSP标签

<jsp:include page=url>动态包含,源文件先执行完,再把结果包含进去

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

<jsp:include/>

------------------------------------

<jsp:forward page=url” >  <jsp:param name=“参数名” value=“参数值” /></jsp:forward>

JSP内置对象

内置对象 Java类型 有效范围

request javax.servlet.http.HttpServletRequest request

response javax.servlet.http.HttpServletResponse page

session javax.servlet.http.HttpSession session

out javax.servlet.jsp.JspWriter page

application javax.servlet.ServletContext application

---------------------------------------------------------------------------------------

page javax.servlet.jsp.HttpJspPage page

pageContext javax.servlet.jsp.PageContext page

config javax.servlet.ServletConfig page

exception java.lang.Throwable page

 

Request对象一些用法

Request获得参数

String value = request.getParameter(参数名);

String[] values = request.getParameterValues(参数名);

Request设置编码

request.setCharacterEncoding(UTF-8);

Request保存/取出对象

requset.setAttribute(key,value);

Object value = requset.getAttribute(key);

Enumeration<String> names = request.getAttributeNames();

Request获取Cookie

Cookie[] cookie= request.getCookies();

请求路径相关

String contextPath = request.getContextPath(); /项目名

String servletPath = request.getServletPath(); /请求路径(项目名之后的)

String uri = request.getRequestURI(); contextPath+servletPath

请求方法

String method = request.getMethod();

 

Response对象一些用法

重定向

response.sendRedirect(xxx);

添加cookie

response.addCookie(Cookie cookie);

Response设置编码

response.setCharacterEncoding(UTF-8);

设置MIME类型

response.setContentType(image/jpeg);

设置响应头

response.setHeader(响应头名响应头值);

 

Out对象一些用法

print()/println();

clearBuffer(); 清除缓冲区的数据,并将数据写入客户端

Clear(); 清除缓冲区的数据,数据不写入客户端

flush(); 输出缓冲区中的数据

newLine(); 输出换行

close(); 关闭输出流

 

Session对象一些用法

session.setAttribuete(key,value);

Object value = session.getAttribuete(key);

session.removeAttribute(key);

Enumeration<String> names = session.getAttributeNames();

session.getLastAccessedTime(); 获取客户端最近访问服务器端的保存时间

session.getMaxInactiveInterval(); 获取客户端停止访问服务器端的保存时间

session.setMaxInactiveInterval(int value); 设置客户端停止放问候

Session.invalidate();//销毁session

 

Application对象一些用法

getResource(String path);

getResourceAsStream(String path);

getServle(String path);

 

Session对象的理解

1.session是用于保存客户信息而分配给客户的对象。

2.HTTP协议不能保存客户端请求信息的历史记录,为了解决这一问题,生成一个session对象,这样服务器和客户端之间的连接状态就会一直保持下去。

3.session的生命同期从客户端进行第1request开始,到用户结束对应用程序的访问终止,如关闭浏览器等。

4.session中的ID标识是唯一的,用来标识每个用户,当刷新浏览器时,该标识的值不变。

5.如果在一定时间内,客户端不向服务器发出应答请求,系统默认在30分钟内,session对象会自动消失。

Application对象的理解

1.WEB服务器启动后,部署在该服务器上的WEB应用程序可以开始运行。

2.每个WEB应用程序开始运行时,会创建唯一的application对象,供所有访问该应用程序的客户端共享。

3.当应用程序结束时,application对象被销毁。

Config对象的理解(很少使用)

config对象被封装为javax.servletConfig接口,通过pageContext.getServletConfig()方法可以获取一个config对象。

getInitParameter(String name);

getInitParameterNames();

getServletName();

getServletContext();

<servlet>

      <servlet-name>sanyang</servlet-name>

      <jsp-file>/index.jsp</jsp-file>

      <init-param>

          <param-name>email</param-name>

          <param-value>wy9wy163@163.com</param-value>

      </init-param>

</servlet>

PageContext对象的理解(很少使用)

pageContext对象它的作用是取得任何范围的参数,通过pageContext对象可以获取JSP页面的outrequestresponsesessionapplication等对象,或者可以重新定向客户的请求等。

Exception对象的理解(很少使用)

1.exception异常对象指的是web应用程序所能够识别并能够处理的问题。

2.Java语言中,通过“try/catch”的关键在来处理异常信息情况,如果在JSP页面中出现没有捕捉到的异常信息,那么系统会自动生成exception对象,并把这个对象传送到page指令元素中设定的错误页面中,然后在错误提示页面中处理相应的exception对象。

3.exception对象只能在错误页面中才可以使用,即页面指令元素里存在isErrorPage=true的页面。

getMessage();

printStackTrace();

JavaBean

通常可以分成数据JavaBean业务JavaBean

JavaBean规范:

1)实现java.io.Serializable接口;

2)是一个公共类;

3)类中必须存在一个无参数的构造函数;

4)对类的属性进行封装:提供对应的setXxx()getXxx()方法来存取类中的属性,方法中的“Xxx”为属性名称,属性的第一个字母应大写。若属性为布尔类型,则可使用isXxx()方法代替getXxx()方法。

JavaBean标签

<jsp:useBean 

id=变量名

scope=生存范围

class=类全名/>

<jsp:setProperty

name="Bean实例名"

property="propertyName" value=""/>

<jsp:getProperty 

    name="Bean实例名"

property="propertyName"/>

<jsp:useBean><jsp:setProperty>2种搭配方式:

(1)独立方式

     <jsp:useBean id="" scope="" class="" />

     <jsp:setProperty name="" property="……/>

   该方法下,2个动作的执行是独立的。

(2)嵌套方式

     <jsp:useBean id="" scope="" class="" >

       <jsp:setProperty name="" property="……/>

     </jsp:useBean>

   该方式下,若useBean动作没有创建新的实例,则setProperty动作不执行。

Servlet(单例的)

生命周期

Jsp/Servlet总结

创建Servlet

继承javax.servlet.GenericServlet或者javax.servlet.http.HttpServlet,通常基于HTTP开发继承HttpServlet,复写doGet()doPost()方法

配置Servlet

<servlet>

  <servlet-name>HttpServletSample</servlet-name>

  <servlet-class>

     app.servlet.http.HttpServletSample

  </servlet-class>

  <load-on-startup>1</load-on-startup>//数值越低优先初始化,<=0需要的时候才初始化

</servlet>

<servlet-mapping>

  <servlet-name>HttpServletSample</servlet-name>

  <url-pattern>/httpservlet</url-pattern>

</servlet-mapping>

或者

@WebServlet(urlPatterns=/httpservlet)

Servlet中转发、重定向

req.getRequestDispatcher(index.jsp).forward(req,resp);//包含include(req,resp);

resp.sendRedirect(xxx);

servlet.getServletContext(); //使用Application

req.getSession(); //使用Sessoin

Filter

创建Filter

实现接口javax.servlet.Filter,复写init(FilterConfig config), doFilter(ServletRequest req, ServletResponse reso,FilterChain chain)destroy()方法

调用chain.doFilter(req,resp);继续往下执行

配置Filter

<filter>

     <filter-name>FilterName</filter-name>

     <filter-class>package.className </filter-class>

     <init-param>

         <param-name>ParamName1</param-name>

         <param-value>ParamValue1</param-value>

     </init-param>

</filter> 

<filter-mapping>

    <filter-name>FilterName</filter-name>

    <url-pattern>/path</url-pattern>

</filter-mapping> 

@WebFilter(urlPatterns=/*)

Listener

 

创建Listener

实现对应的Listener接口,复写对应的方法

Jsp/Servlet总结

Jsp/Servlet总结Jsp/Servlet总结

配置Listener

<listener>

     <listener-class>squall.servlet.listener.Listener</listener-class>

</listener>

Servlet、Filter、Listener顺序问题

容器加载顺序:context-param -> listener -> filter -> servlet

filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用

EL表达式${}

pageScope

requestScope

sessionScope

applicationScope

param 访问request的单值参数

paramValues 访问request的多值参数

Cookie 访问Cookie

initParam 访问初始化参数

header 访问header的单值参数

headerValue 访问header的单值参数

.操作[]操作基本相同

特殊情况:param[var],var是变量,稍微灵活一些

${username}因为并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。

Jsp/Servlet总结,布布扣,bubuko.com

Jsp/Servlet总结

上一篇:HTML的meta标签


下一篇:ajax三级联动下拉菜单