JavaWeb之Jsp

JSP (Java Server Pages)

​ JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。

​ JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。

​ JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。

​ JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。

img

程序架构

C/S架构程序:(客户端+服务器)

​ 需要安装,成本相对高;客户端有一定数据处理能力;

B/S架构程序:(浏览器+服务器)

​ 低成本,无需安装;服务器处理数据,压力较大;部署更快

​ 采用请求/响应模式进行交互

JSP 生命周期

​ 理解JSP底层功能的关键就是去理解它们所遵守的生命周期。

​ JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。

​ 以下是JSP生命周期中所走过的几个阶段:

  • 编译阶段:

    servlet容器编译servlet源文件,生成servlet类

  • 初始化阶段

    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

  • 执行阶段

    调用与JSP对应的servlet实例的服务方法

  • 销毁阶段:

    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

JSP HTTP 状态码

http:无状态协议

url:计算机通过统一资源定位符实现资源访问

状态码消息描述
100Continue只有一部分请求被服务器接收,但只要没被服务器拒绝,客户端就会延续这个请求
101Switching Protocols服务器交换机协议
200OK请求被确认
201Created请求时完整的,新的资源被创建
202Accepted请求被接受,但未处理完
203Non-authoritative Information
204No Content
205Reset Content
206Partial Content
300Multiple Choices一个超链接表,用户可以选择一个超链接并访问,最大支持5个超链接
301Moved Permanently被请求的页面已经移动到了新的URL下
302Found被请求的页面暂时性地移动到了新的URL下
303See Other被请求的页面可以在一个不同的URL下找到
304Not Modified
305Use Proxy
306Unused已经不再使用此状态码,但状态码被保留
307Temporary Redirect被请求的页面暂时性地移动到了新的URL下
400Bad Request服务器无法识别请求
401Unauthorized被请求的页面需要用户名和密码
402Payment Required目前还不能使用此状态码
403Forbidden禁止访问所请求的页面
404Not Found服务器无法找到所请求的页面
405Method Not Allowed请求中所指定的方法不被允许
406Not Acceptable服务器只能创建一个客户端无法接受的响应
407Proxy Authentication Required在请求被服务前必须认证一个代理服务器
408Request Timeout请求时间超过了服务器所能等待的时间,连接被断开
409Conflict请求有矛盾的地方
410Gone被请求的页面不再可用
411Length Required"Content-Length"没有被定义,服务器拒绝接受请求
412Precondition Failed请求的前提条件被服务器评估为false
413Request Entity Too Large因为请求的实体太大,服务器拒绝接受请求
414Request-url Too Long服务器拒绝接受请求,因为URL太长。多出现在把"POST"请求转换为"GET"请求时所附带的大量查询信息
415Unsupported Media Type服务器拒绝接受请求,因为媒体类型不被支持
417Expectation Failed
500Internal Server Error请求不完整,服务器遇见了出乎意料的状况
501Not Implemented请求不完整,服务器不提供所需要的功能
502Bad Gateway请求不完整,服务器从上游服务器接受了一个无效的响应
503Service Unavailable请求不完整,服务器暂时重启或关闭
504Gateway Timeout网关超时
505HTTP Version Not Supported服务器不支持所指定的HTTP版本

使用Tomcat部署Web项目

​ Web 应⽤服务器:Tomcat、Jboos、Weblogic、Jettyn、WebSphere、Nginx、IIS、Apache

​ Apache(Web服务器,接收web请求,不做应用处理,等价于Nginx) 、

​ Tomcat(可以做应用处理,执行java程序)

Tomcat服务器特点

Apache Jakarta的开源项目

轻量级应用服务器

开源、稳定、资源占用小

安装 Tomcat:
1、官⽹下载压缩⽂件。

https://tomcat.apache.org/download-90.cgi

2、解压缩。
  • bin:存放各个平台下启动和停⽌ Tomcat 服务的脚本⽂件。其中, .sh支持Linux平台,.bat支持Windows平台。startup.bat启动,shutdown.bat停止

  • conf:存放各种 Tomcat 服务器的配置⽂件。通过server.xml修改端口号,tomcat-user.xml可修改用户名和密码。

  • lib:存放 Tomcat 服务器所需要的 jar。

  • logs:存放 Tomcar 服务运⾏的⽇志。

  • temp:Tomcat 运⾏时的临时⽂件。

  • webapps:存放允许客户端访问的资源(Java 程序),当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中。

  • work:存放 Tomcat 将 JSP 转换之后的 Servlet ⽂件。

配置过程

​ 默认端口号:8080

​ 访问http://127.0.0.1:8080/…查看Tomcat主页

​ **注意:**startup.bat启动Tomcat出现一闪而过现象是因为JAVA_HOME没有配置。

​ Eclipse下配置Tomcat环境:

​ window–>首选项–>Server–>运行环境–>点击Add–>选择对应版本–>应用和关闭–>建立web工程–>双击Server–>Server Locations选择Tomcat Installation、Deploy path改为webapps

jsp

本质是Servlet------java组件,接收请求,做出响应 生成类

​ 常见动态网页技术:JSP,PHP,ASP,CGI

​ 当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。也就是说JSP是运行在服务器端,但最终发给客户端的都已经是转换好的HTML静态页面(在响应体里)。

七种元素:

​ HTML元素

​ 指令:page、include、taglib <% @page %>

​ 注释:<%--JSP注释--%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译

<!--HTML注释--> HTML注释,通过浏览器查看网页源代码时可以看见注释内容

JSP脚本中注释:<%//单行注释%>、 <%/*多行注释*/%>

​ 表达式:<%= 表达式 %>

​ 小脚本:<% java语句; %>,生成到Servlet类的方法中

​ 声明:<%! 属性和方法的声明 %>

​ 使用<%%>声明局部变量、使用<%!%>声明全局变量

​ 动作:<jsp:useBean> </jsp:useBean>,不常用

显示输出:

​ out.println(); 响应到客户端

​ System.out.println(); 服务器端控制台

指令包含(静态)和动作包含(动态):

​ 把网页中公共部分提取单独写,方便维护

指令包含:<%@include file ="..." %>
动作包含:<jsp:include page="..."></jsp:include>	
<!--注意:使用包含时,删除<html><bydy>等部分,只保留相关语句-->

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"  %>

	<div id="head">
		<a href="index.jsp">首页</a>  |  <a href="count.jsp">访问数统计</a>  |  <a href="action.jsp">动作</a>  
	</div>

指令包含(静态)和动作包含(动态)区别?***

​ 在一个文件中使用静态包含,本文件与被包含文件先合并,然后转译、编译

​ 在一个文件中使用动态包含,本文件与被包含文件分别转译、编译,然后调用被包含文件的class文件

JSP运行过程:

.jsp文件转译生成.java文件编译生成.class加载运行

jsp内置对象:
pageContext      PageContext          	 当前页面共享数据,还可以获取其他八个内置对象
​request          HttpServletRequest     一次请求访问的多个资源(转发)
​session          HttpSession          	 一次会话的多个请求间
​application      ServletContext         所有用户间共享数据
​response         HttpServletResponse    响应对象
​page             Object            	 当前页面(Servlet)的对象  this
​out              JspWriter          	 输出对象,数据输出到页面上
​config           ServletConfig        	 Servlet的配置对象,获取web.xml的配置参数
​exception        Throwable          	 异常对象,默认不识别,只能用在错误页面

https://blog.csdn.net/qq_40587575/article/details/79810019

错误页面:需要在page指令中设置,errorPage="true"设置当前页面为错误页面。

只有设置了errorPage=“true” 才能使用exception对象。

out.print()与out.println()比较

浏览器页面只显示内容,换行需要加<br.>,换行体现在源码中

request常用方法:

String getRemoteAddr():返回客户端的IP地址

Enumeration getHeaderNames():返回所有HTTP头的名称集合

String getHeader(String name):返回name指定的信息头

Enumeration getAttributeNames():返回request对象的所有属性名称的集合

HttpSession getSession():返回request对应的session对象,如果没有,则创建一个

HttpSession getSession(boolean create):返回request对应的session对象,如果没有并且参数create为true,则返回一个新的session对象

Object getAttribute(String name):返回名称为name的属性值,如果不存在则返回null。

String getContentType():返回request主体的MIME类型,若未知则返回null

String getContextPath():返回request URI中指明的上下文路径

String getParameter(String name):返回此request中name指定的参数,若不存在则返回null

String getPathInfo():返回任何额外的与此request URL相关的路径

值,如果不存在则返回null。

String getContentType():返回request主体的MIME类型,若未知则返回null

String getContextPath():返回request URI中指明的上下文路径

String getParameter(String name):返回此request中name指定的参数,若不存在则返回null

String getPathInfo():返回任何额外的与此request URL相关的路径

四个作用域对象:pageContext、request、session、application。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值