Java JSP

Java JSP,第1张

文章目录
  • JSP基础语法
    • 1.JSP简介
    • 2.JSP页面元素构成
    • 3.JSP指令
    • 4.JSP注释
    • 5.JSP脚本
    • 6.JSP声明
    • 7.JSP表达式
    • 8.JSP生命周期
  • JSP内置对象
    • 1.内置对象简介
    • 2.out对象
    • 3.get与post
    • 4.request对象
    • 5.response对象
    • 6.session对象
    • 7.application对象
    • 8.page对象
    • 9.pageContext对象
    • Config对象和Exception对象
  • 附:关于idea运行jsp文件出现的相关问题

JSP基础语法 1.JSP简介

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,它实现了在Java当中使用HTML标签,Jsp是一种动态网页技术标准。JSP与Servlet一样,是在服务器端执行的。

2.JSP页面元素构成

3.JSP指令
  • page指令:通常位于JSP页面顶端,同一个页面可以有多个page指令。
  • include指令: 将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句。
  • taglib指令:使用标签库定义新的自定义标签,在JSP页面中启动定制行为。

page指令语法

<%@ page 属性1=“属性值” 属性2=“属性值1,属性值2”… 属性值n=“属性值n"%>

属性:

4.JSP注释

简而言之就是在JSP页面的注释。
HTML的注释

<!--html注释-->//客户端可见

JSP的注释

<%--html注释--%>//客户端不可见

JSP脚本注释

//单行注释
/*多行
注释*/
//也是不可见的
5.JSP脚本

指在JSP界面执行的代码。

<%
	System.out.println("JSP学习");
	//不会输出到控制端,在服务器的控制台打印
 %>
6.JSP声明

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

<%! Java代码>

7.JSP表达式

在JSP页面执行的表达式。
语法:

<%=表达式%>//注意,表达式不以分号结束

8.JSP生命周期

JSP生命周期的主要阶段:

  • 编译阶段:servlet容器编译servlet源文件,生成serlvet类。
  • 初始化阶段:加载JSP对应的servlet类,创建其实例,并调用它的初始化方法。
  • 执行阶段:调用与JSP对应的servlet类的服务方法。
  • 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后又销毁servlet实例。

编译阶段

1.解析jsp文件
2.将jsp文件转化为servlet
3.编译servlet

初始化阶段

在请求服务器前调用jsprint()方法,如果需要自定义jsprint()初始化功能可以重写jsprint()方法。一般情况下可以通过jsprint()方法中初始化数据库连接,打开文件和创建查询表。

执行阶段

这一阶段进行一切与请求相关的交互行为,直到被销毁。当jsp网页初始化完成后,jsp引擎会调用-jspService()方法。

销毁阶段

这一阶段主要描述了将jsp网页从容器中被移除时所发生的一切。
jspDestory()方法就是JSP的销毁方法,当需要做清理工作时也可以复写该方法。

JSP内置对象 1.内置对象简介

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

<%
	int i=1;
	out.println(i);
	//out是内置对象之一,它可以不需要new直接使用
%>

常用内置对象
JSP九大内置对象

2.out对象

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

1.void println() 向客户端打印字符串
2.void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
3.void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常
4.void flush() 将缓冲区内容输入到客户端
5.int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
6.int getRemaining() 返回缓冲区还剩余多少可用
7.boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
8.void close() 关闭输出流

3.get与post
<form name="regForm"action="动作"method="提交方式"></form>
//method="get"或"post"

区别:
表单有两种提交方式,get与post
1.get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性比较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索,查询等功能。
2.post:将用户提交的信息封装在HTML HEADER内,适合提交数据量大,安全性高的用户信息。比如:注册,修改,上传等功能。

4.request对象

客户端的请求被封装在request对象中,通过它才能了解到客户的需求,然后作出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法如下:

  • String getParameter(String name)返回name指定参数的参数值
  • String[] getParameterValues(String name) 返回包含参数name的所有值的数组
  • void setAttribute(String,Object) 存储此请求中的属性
  • object getAttribute(String name) 返回指定属性的属性值
  • String getContentType() 得到请求体的MIME类型
  • String getProtocol() 返回请求用的协议类型及版本号
  • String getServerName() 返回接受请求的服务器主机名
5.response对象

response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。他是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。
常用方法如下:

  • String getCharacterEncoding() 返回响应用的是何种字符编码
  • void setContentType(String type) 设置响应的MIME类型
  • PrintWriter getWriter()返回可以向客户端输出一个字符的一个对象
    //注意比较PrintWriter与内置out对象的区别
  • sendRedirect(java.lang.String location) 重新定向客户端的请求

请求转发与请求重定向
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(red,resp);是一次请求,请求后转发请求对象会保存,地址栏的URL地址不会改变。

6.session对象

session表示客户端与服务器的一次对话。Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session是一个特定的时间概念。
在服务器中保存着不同用户的session。
常用方法如下:

  • long getCreationTime() 返回session创建时间
  • public String getID() 返回session创建时JSP引擎为它设的唯一ID号
  • public Object setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话
  • public Object getAttribute(String name) 返回与此会话中的指定名称绑定在一起的对象,如果没有兑现绑定在该名称下,返回null
  • String[] getValueNames() 返回一个包含此session的所有可用属性的数组
  • int getMaxInactiveInterval() 返回两次请求间隔多长时间此session被取消(单位秒)

** session生命周期 **
创建阶段:服务器第一次访问某个jsp或者servlet的时候,服务器会为当前会话创建一个sessionID,每次客户端向服务器发送请求时,会将此sessionID带过去。
活动阶段:只要当前会话页面没有全部关闭,重新打开新的浏览窗口访问同一项目资源时属于同一次会话。
(注:就算关闭再重新访问创建了新的会话原有的sessionID还存在,只不过再没有客户端会携带它交予服务器校验。)
销毁阶段:销毁有三种方式:调用session.invalidate()方法,session过期(超时),服务器重新启动。

7.application对象

application对象实现了用户之间数据的共享,可存放全局变量。application开始于服务器的启动,终止于服务器的关闭。在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行 *** 作。在任何地方对application属性的 *** 作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。application对象是ServletContext类的实例。
常用方法如下:

8.page对象

page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。
常用方法如下:

9.pageContext对象

提供了对JSP页面所有的对象以及名字空间的访问。可以访问到本页所在的session,也可以取本页的application某一属性值。pageContext对象的本类名也叫pageContext。
常用方法如下

Config对象和Exception对象

(懒得打字了)

附:关于idea运行jsp文件出现的相关问题

404相关问题
我第一次写用idea创建了一个jsp文件然后运行发现d出来一个HTTP 404的界面,大概是下面这个样子的

然后因为这个问了学长,也看了百度很多相关的解答,其实根本原因还是在于路径不对。在idea中需要首先点击这个地方

然后是在这一块找到你的jsp文件然后点击确定,路径才会正确

然后网页就可以成功显示了,后续也不需要再修改。

500错误
对,我刚修复404的错误又出现了500的错误…然后查了相关资料,500的错误主要是由于自身代码的问题导致的,所以在运行前一定要好好检查代码。

小建议
个人建议创建jsp文件的话最好用一个单独的项目,一开始我是在我的Java包里面加了web程序,但是后面发现确实很不方便,也有很多bug,学长建议我重新建一个项目,我建好之后真的感觉界面啥的都清晰了很多。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/721966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存