后端开发一

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 page="t1.jsp"></jsp: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<request<session<application

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,018评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,046评论 2 372
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,215评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,303评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,181评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,171评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,577评论 3 384
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,260评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,546评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,630评论 2 311
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,390评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,260评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,633评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,920评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,210评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,569评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,767评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,506评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,777评论 0 11
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,803评论 6 13
  • 我以为,我可以像风 这样就可以随四季,拂动你的面颊 我以为,我可以像雨 这样就可以随四时,滴落湿润你的秀发 我以为...
    浩宇_90阅读 132评论 0 0