后端开发一

jsp/servlet

1、JSP与PHP、ASP、ASP.NET等语言类似,运行在服务端的语言。Java 服务器页面 (Java Server Page ,JSP) 以扩展名 .jsp 保存

2 jsp全称:java server page

工作原理

客户向服务器发请求--》服务器把编译后的结果返回给客户端

3 jsp-->java语法+jsp内置对象+jsp基本语法格式

servlet-->java语法+servlet常用类


jsp注解

1、在<%

//注解1行

/*  注解多行  */

%>

2、页面中多个内容用

<%--

包含的内容都不显示

--%>

html:


JSP 语法

1、脚本程序 :<% 代码片段 %>2、JSP声明:一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。<%! declaration; [ declaration; ]+ ... %>3、JSP表达式:<%= 表达式 %>和<%out.println(...);%>是一样,但 out.println(...)后有分号4、JSP注释:<%-- 该部分注释在网页中不会被显示--%>同时支持java的// 、/*...*/、  /**...*/<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译 HTML注释,通过浏览器查看网页源代码时可以看见注释内容 5、JSP指令.  <%@ page ... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等<%@ include ... %> 包含其他文件<%@ taglib ... %> 引入标签库的定义,可以是自定义标签<%@ include ... %> 包含其他文件但一般使用


jsp指令

以“<%@ ” 开始,以“%> ” 结束。比如:

<%@ include file = " Filename" %>


表达式

表达式

<%=...%>

注没有分号结束


jsp声明

<%! 函数或方法 %>


jsp对象

可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量JSP共有以下9种基本内置组件


request对象

1、客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例2、request常用方法方 法 说 明1  object getAttribute(String name) 返回指定属性的属性值2  String getCharacterEncoding() 返回字符编码方式3  getRequestDispatcher转发request.getRequestDispatcher("t1.jsp").forward(request, response); 4  String getParameter(String name) 返回name指定参数的参数值5  String[] getParameterValues(String name) 返回包含参数name的所有值的数组6  String getProtocol() 返回请求用的协议类型及版本号7  String getServerName() 返回接受请求的服务器主机名8  int getServerPort() 返回服务器接受此请求所用的端口号9  String getRemoteAddr() 返回发送此请求的客户端IP地址10  String getRemoteHost() 返回发送此请求的客户端主机名11  void setAttribute(String key,Object obj) 设置属性的属性值12 String getContentType() 得到请求体的MIME类型    欢迎:<%=request.getAttribute("name") %>    请求方式:<%=request.getMethod()%>

请求的资源:<%=request.getRequestURI()%>

请求用的协议:<%=request.getProtocol()%>

请求的文件名:<%=request.getServletPath()%>

请求的服务器的IP:<%=request.getServerName()%>

请求服务器的端口:<%=request.getServerPort()%>

客户端IP地址:<%=request.getRemoteAddr()%>

客户端主机名:<%=request.getRemoteHost()%>


response对象

处理 JSP 生成的响应

将响应发送给客户端,它是HttpServletResponse类的实例。

1 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象

2 void setContentType(String type) 设置响应的MIME类型

3 sendRedirect(java.lang.String location) 重新定向客户端的请求

强内聚、松耦合


out 对象

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

序号 方 法 说 明

1  void clear() 清除缓冲区的内容

2  void clearBuffer() 清除缓冲区的当前内容

3  void flush() 清空流

4  int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0

5  int getRemaining() 返回缓冲区还剩余多少可用

6  boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常

7  void close() 关闭输出流

8 print() 和println()输出信息


面试:sendRedirect和getRequestDispatcher(即转发和重定向的区别)

重定向response.sendRedirect("success.jsp");

转发:request.getRequestDispatcher("success.jsp").forward(request,response);

1转发:一次请求,一次响应。地址栏的url不会改变。在服务器端执行,所以必须在同一台服务器上。转发速度快。

可以通过request.getAttribute()获取request.setAttribute()中的值

2重定向:两次请求。地址栏的url会随之改变为定向后的那个url。在客户端执行,所以可以在不同的服务器上。重定向速度慢。不能通过request.getAttribute()获取request.setAttribute()中的值


session 对象

session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

注:它的生命周期为浏览器不关闭或时间没到(默认时间为30分钟)

常用方法:

1 session.setMaxInactiveInterval(2);//设置过期时间,单位为秒,默认是30分钟

2  void invalidate() 取消SESSION,使SESSION不可用

3boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入

4  long getCreationTime() 返回SESSION创建时间

5  public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号

6  long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间

7  int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms)

8 getAttribute(String name) 返回指定属性的属性值

9 void setAttribute(String key,Object obj) 设置属性的属性值

session是运行在服务器端较案例,

注意:session的生命周期较长,一般开发中不宜使用过多存储

注:session失效时间

1服务器重重启

2浏览器关闭

3setMaxInactiveInterval(2);时间到了

4没有设置则默认为30分钟


application对象

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在

方 法 说 明,通常用于开发计算器

1  Object getAttribute(String name) 返回给定名的属性值

2  void setAttribute(String name,Object obj) 设定属性的属性值

3  void removeAttribute(String name) 删除一属性及其属性值

4  String getServerInfo() 返回JSP(SERVLET)引擎名及版本号

5  String getRealPath(String path) 返回一虚拟路径的真实路径

6  ServletContext getContext(String uripath) 返回指定WebApplication的application对象

7  int getMajorVersion() 返回服务器支持的Servlet API的最大版本号

8  int getMinorVersion() 返回服务器支持的Servlet API的最大版本号

9  String getMimeType(String file) 返回指定文件的MIME类型

10  URL getResource(String path) 返回指定资源(文件及目录)的URL路径


exception对象

exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象1  String getMessage() 返回描述异常的消息2  String toString() 返回关于异常的简短描述消息3  void printStackTrace() 显示异常及其栈轨迹4  Throwable FillInStackTrace() 重写异常的执行栈轨迹 1<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*" isErrorPage="true"%><%=exception %>

2<%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo.jsp"%><%int[] arr = {1,2,4};out.println(arr[3]);%>


page 对象

page对象就是指向当前JSP页面本身,生存周期就是当前页,在实际开发中一般使用pageContext


pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问


config对象

config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

序号 方 法 说 明

1  ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象

2  String getInitParameter(String name) 返回初始化参数的值


隐式对象的作用域

page只能在本页有效,request本页或转发页有效,session只要浏览器不关都有效或在有效时间内都有效,application只要服务器不关机都有效,即范围大小为:

page

你可能感兴趣的:(后端开发一)