- 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全名为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"%>
属性:
简而言之就是在JSP页面的注释。
HTML的注释
<!--html注释-->//客户端可见
JSP的注释
<%--html注释--%>//客户端不可见
JSP脚本注释
//单行注释
/*多行
注释*/
//也是不可见的
5.JSP脚本
指在JSP界面执行的代码。
<%
System.out.println("JSP学习");
//不会输出到控制端,在服务器的控制台打印
%>
6.JSP声明
在JSP页面中定义变量或者方法
语法
7.JSP表达式<%! Java代码>
在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内置对象是web容器创建的一组对象,不使用new关键字就可以使用的内置对象。
<%
int i=1;
out.println(i);
//out是内置对象之一,它可以不需要new直接使用
%>
常用内置对象
JSP九大内置对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象。
常用方法如下:
3.get与post1.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() 关闭输出流
<form name="regForm"action="动作"method="提交方式"></form>
//method="get"或"post"
区别:
表单有两种提交方式,get与post
1.get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性比较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索,查询等功能。
2.post:将用户提交的信息封装在HTML HEADER内,适合提交数据量大,安全性高的用户信息。比如:注册,修改,上传等功能。
客户端的请求被封装在request对象中,通过它才能了解到客户的需求,然后作出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法如下:
5.response对象
- 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() 返回接受请求的服务器主机名
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地址不会改变。
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过期(超时),服务器重新启动。
application对象实现了用户之间数据的共享,可存放全局变量。application开始于服务器的启动,终止于服务器的关闭。在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行 *** 作。在任何地方对application属性的 *** 作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。application对象是ServletContext类的实例。
常用方法如下:
page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。
常用方法如下:
提供了对JSP页面所有的对象以及名字空间的访问。可以访问到本页所在的session,也可以取本页的application某一属性值。pageContext对象的本类名也叫pageContext。
常用方法如下
(懒得打字了)
404相关问题
我第一次写用idea创建了一个jsp文件然后运行发现d出来一个HTTP 404的界面,大概是下面这个样子的
然后因为这个问了学长,也看了百度很多相关的解答,其实根本原因还是在于路径不对。在idea中需要首先点击这个地方
然后是在这一块找到你的jsp文件然后点击确定,路径才会正确
然后网页就可以成功显示了,后续也不需要再修改。
500错误
对,我刚修复404的错误又出现了500的错误…然后查了相关资料,500的错误主要是由于自身代码的问题导致的,所以在运行前一定要好好检查代码。
小建议
个人建议创建jsp文件的话最好用一个单独的项目,一开始我是在我的Java包里面加了web程序,但是后面发现确实很不方便,也有很多bug,学长建议我重新建一个项目,我建好之后真的感觉界面啥的都清晰了很多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)