JSP内置对象
来源:互联网 发布:ubuntu on windows 编辑:程序博客网 时间:2024/06/05 10:21
JSP其根本是一个简化的Serverlet设计,他实现了在Java当中使用HTML标签,JSP是一种动态网页技术标准
也是JAVAEE的标准,JSP和Serverlet一样,是在服务器端执行的。
JSP:java平台,安全性高,适合开发大型的,企业级的web应用程序
ASP.net:.NET平台简单易学,但安全性及跨平台性web应用
PHP:简单高效,成本低开发周期短,特别适合中小型企业的web应用开发。
JSP页面组成部分:静态内容,指令,表达式,小脚本,声明,注释
taglib指令,include指令,page指令
用户发出请求index.jsp,判断是否是第一次请求,是JSP引擎把该JSP文件转换成为一个Servlet,生成字节码文件,并执行jspinit()
然后生成字节码文件,不是就直接生成字节码文件,解析执行jspService(.)
jspService()方法被调用来处理客户端的请求,对每一个请求,JSP引擎创建一个新的线程来处理该请求。
如果有多个客户端同时请求JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程。
以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于Servlet始终住与内存,所以响应是非常快的
内置对象:JSP内置对象是WEB容器创建的一组对象,不使用new关键字就可以使用的内置对象
常用的JSP内置对象:out,request,response,session,application,其他不常用的内置对象
用户发送请求,服务器进行响应
缓冲区就是内存中的一块区域用来保存临时数据
out对象是JSPWriter类的实例,是向客户端输出内容常用的对象
void println()想客户端打印字符串
void clear()清除缓冲区的内存,如果在flush之后调用会抛出异常
void clearBuffer()清除缓冲区的内荣,如果在flush之后调用不会抛出异常
void flush()将缓冲区的内容输出到客户端
int getBufferSize()返回缓冲区以字节数的大小,如不设置缓冲区则为0
int getRemaining()返回缓冲区还剩余多少可用
boolean isAutoFlush()返回缓冲区慢时,是自动清空还是抛出异常
void close()关闭输出流
<form name="regForm" action="动作" method="提交方式">
String getCharacterEncoding()返回响应用的是何种字符编码
void setContextType(String type)设置响应的MIME类型
PrintWriter getWriter()返回可以向客户端输出字符的一个对象
sendRedirect重定向客户端的请求
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
也是JAVAEE的标准,JSP和Serverlet一样,是在服务器端执行的。
JSP:java平台,安全性高,适合开发大型的,企业级的web应用程序
ASP.net:.NET平台简单易学,但安全性及跨平台性web应用
PHP:简单高效,成本低开发周期短,特别适合中小型企业的web应用开发。
JSP页面组成部分:静态内容,指令,表达式,小脚本,声明,注释
taglib指令,include指令,page指令
用户发出请求index.jsp,判断是否是第一次请求,是JSP引擎把该JSP文件转换成为一个Servlet,生成字节码文件,并执行jspinit()
然后生成字节码文件,不是就直接生成字节码文件,解析执行jspService(.)
jspService()方法被调用来处理客户端的请求,对每一个请求,JSP引擎创建一个新的线程来处理该请求。
如果有多个客户端同时请求JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程。
以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于Servlet始终住与内存,所以响应是非常快的
内置对象:JSP内置对象是WEB容器创建的一组对象,不使用new关键字就可以使用的内置对象
常用的JSP内置对象:out,request,response,session,application,其他不常用的内置对象
用户发送请求,服务器进行响应
缓冲区就是内存中的一块区域用来保存临时数据
out对象是JSPWriter类的实例,是向客户端输出内容常用的对象
void println()想客户端打印字符串
void clear()清除缓冲区的内存,如果在flush之后调用会抛出异常
void clearBuffer()清除缓冲区的内荣,如果在flush之后调用不会抛出异常
void flush()将缓冲区的内容输出到客户端
int getBufferSize()返回缓冲区以字节数的大小,如不设置缓冲区则为0
int getRemaining()返回缓冲区还剩余多少可用
boolean isAutoFlush()返回缓冲区慢时,是自动清空还是抛出异常
void close()关闭输出流
<form name="regForm" action="动作" method="提交方式">
get:以明文的方式通过URL提交数据,数据在URL中可以看到,提交的数据最多不超过2KB,安全性较低但效率比post方式高,适合提交数据量不大,安全性不高的数据
<body><h1>用户登录</h1> <form name="regForm" action="dologin.jsp" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username"/></td> </tr> <tr> <td>爱好:</td> <td><input type="checkbox" name="favorite" value="read"/>读书 <input type="checkbox" name="favorite" value="music"/>音乐 <input type="checkbox" name="favorite" value="movie"/>电影 <input type="checkbox" name="favorite" value="internet"/>上网</td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"/></td> </table> </form></body>dologin.jsp<body><h1>登录成功</h1><%request.setCharacterEncoding("utf-8");request.setAttribute("password","123456");%>用户名:<%=request.getParameter("username") %><br/>爱好:<%if(request.getParameterValues("favorite")!=null){String[] favorites=request.getParameterValues("favorite");for(int i=0;i<favorites.length;i++){out.println(favorites[i]+" ");}}%><br/>密码:<%=request.getAttribute("password") %><br/>请求的MIME类型:<%=request.getContentType() %><br/>协议类型即版本号:<%=request.getProtocol() %><br/>服务器主机名:<%=request.getServerName() %><br/>服务器端口号:<%=request.getServerPort() %><br/>请求的文件的长度:<%=request.getContentLength() %><br/>请求客户端的IP地址:<%=request.getRemoteAddr() %><br/>请求的真实路径:<%=request.getRealPath("out.jsp") %><br/>请求的上下文路径:<%=request.getContextPath() %><br/></body>
response对象:包含了响应客户请求的有关信息,但在JSP中很少直接用到它。他是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效,常用方法如下String getCharacterEncoding()返回响应用的是何种字符编码
void setContextType(String type)设置响应的MIME类型
PrintWriter getWriter()返回可以向客户端输出字符的一个对象
sendRedirect重定向客户端的请求
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% response.setContentType("text/html;charset=utf-8");//设置响应MIME类型 out.println("<h1>response内置对象</h1>"); out.println("<hr/>"); out.flush(); PrintWriter outer=response.getWriter(); outer.println("大家好"); response.sendRedirect("dologin.jsp");//请求重定向 %>
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
阅读全文
0 0
- JSP - JSP内置对象
- JSP--JSP内置对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- jsp内置对象
- JSP 内置对象
- JSP内置对象
- JSP内置对象
- JSP内置对象
- JSP的内置对象
- jsp内置对象集合
- jsp内置对象
- JSP内置对象
- jsp内置对象
- JSP内置对象
- JSP的内置对象
- 继承与合成基本概念 继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。 合成:在新类里创建原有的对象称为合成。
- 自定义Jsp标签
- 日记—9.14
- 用递归来解决Hanoi塔问题
- 【Python】正则表达式-判断输入字符串为字母、数字、长度大于8
- JSP内置对象
- H5~标签、选择器
- nuttx文件说明
- myeclips上无法在servlet上无法断点
- jsp内省EL
- bzoj1095 线段树括号序列
- ImageIcon & Image
- linux--sudo su命令
- 冒泡排序法