JavaWeb之JSP技术总结
2017-03-18 17:36
429 查看
刚接触JSP技术的时候让我想起了在大学学的Asp+VBScript,记得当时我还用aspstudy做了一个小的新闻发布系统作为期末作品,也正是在那时候在卢哥卢老师的指导下走向编程的道路,对编程越来越感兴趣。为什么会让我想起asp呢?因为Jsp和它还挺类似的,asp本身就是把vbscript都放在asp页面,没有像asp.net那样界面与逻辑分离,这样更加清楚。
一、工作原理与生命周期
JSP编译之后也是一个继承HttpServlet的类,所以也能完成HttpServlet能完成的所有事。只是工作方式和Servlet不一样,Servlet是先编译后部署,而jsp是先部署后编译。jsp是一个Servlet那它的生命周期也和Servlet一样,只是它有自己的初始化和销毁方法。
我们可以查看下它生成的java类是什么样的。在工作空间下找到下面的路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\HelloWorld\org\apache\jsp,会出现两个文件,一个是.java文件,一个是.class文件,当客户端第一次请求时Tomcat先将test.jsp文件转化为.java文件,并将.java文件编译成.class文件,该.class便是jsp对应的Servlet,编译完之后再运行.class文件来响应客户请求,以后客户访问会直接调用.class来响应,下面的代码是.java的代码。
View Code
![](https://images2015.cnblogs.com/blog/733213/201703/733213-20170318171731901-5877460.png)
一、工作原理与生命周期
JSP编译之后也是一个继承HttpServlet的类,所以也能完成HttpServlet能完成的所有事。只是工作方式和Servlet不一样,Servlet是先编译后部署,而jsp是先部署后编译。jsp是一个Servlet那它的生命周期也和Servlet一样,只是它有自己的初始化和销毁方法。
public void _jspInit() {} public void _jspDestroy() {}
我们可以查看下它生成的java类是什么样的。在工作空间下找到下面的路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\HelloWorld\org\apache\jsp,会出现两个文件,一个是.java文件,一个是.class文件,当客户端第一次请求时Tomcat先将test.jsp文件转化为.java文件,并将.java文件编译成.class文件,该.class便是jsp对应的Servlet,编译完之后再运行.class文件来响应客户请求,以后客户访问会直接调用.class来响应,下面的代码是.java的代码。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="useBean.jsp" method="post"> <table> <tr><td>姓名:</td><td><input type="text" name="name" value="" style="width:200"/></td></tr> <tr><td>年龄:</td><td><input type="text" name="age" value="" style="width:200"/></td></tr> <tr><td>性别:</td><td><input type="radio" name="sex" value="True" checked="true" />男<input type="radio" name="False" value="0" />女</td></tr> <tr><td clospan="2"><input type="submit" name="submit" value="提交"/></td></tr> </table> </form> <% request.setCharacterEncoding("UTF-8"); if(request.getMethod().toString().equalsIgnoreCase("post")){%> <!-- 在page中实例化一个id为user类型为com.test.cyw.User的对象 --> <jsp:useBean id="user" class="com.test.cyw.User" scope="page"></jsp:useBean> <!-- 设置use对象的各个属性,*代表所有,会自动从request中找 --> <jsp:setProperty property="*" name="user"/> 姓名:<jsp:getProperty property="name" name="user"/><br> 年龄:<jsp:getProperty property="age" name="user"/><br> 性别:<jsp:getProperty property="sex" name="user"/><br> 姓名:${user.name}<br> 年龄:${user.age}<br> 性别:${user.sex}<br> <% } %> </body> </html>
View Code
![](https://images2015.cnblogs.com/blog/733213/201703/733213-20170318171731901-5877460.png)
隐含对象名称 | 描 述 |
---|---|
pageContext | 对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。) |
pageScope | 代表page域中用于保存属性的Map对象 |
requestScope | 代表request域中用于保存属性的Map对象 |
sessionScope | 代表session域中用于保存属性的Map对象 |
applicationScope | 代表application域中用于保存属性的Map对象 |
param | 表示一个保存了所有请求参数的Map对象 |
paramValues | 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] |
header | 表示一个保存了所有http请求头字段的Map对象 |
headerValues | 同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”] |
cookie | 表示一个保存了所有cookie的Map对象 |
initParam | 表示一个保存了所有web应用初始化参数的map对象 |
相关文章推荐
- java学习基础篇之WEB开发中常用Jsp/Bean相关技术总结(转)
- java web 轻量级开发全体验之一:JSP技术概述
- JavaWeb常用开发技术总结-js、spring、javabean、mysql数据库、dwr的使用等
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第二篇:登陆和注销功能实现
- Java web基础总结八之—— jsp基础
- Java web基础总结十之—— jsp EL表达式
- java Web 分页技术总结
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第一篇:前期环境准备
- [Java Web] 6、Tomcat服务器的安装及配置以及JSP技术笔记
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第三篇:新闻发布,新闻修改,新闻删除功能的实现
- Java web基础总结十之—— jsp EL表达式
- JavaWeb中JSP技术
- java web 学习总结之 Servlet/JSP 编码问题
- java web 学习总结之 Servlet/JSP 编码问题
- Javaweb 深入JSP技术(三)
- Tomcat 与java web 开发技术详解笔记(三)----JSP
- JavaWeb中深入了解JSP技术
- JavaWeb入门实战—JSP技术
- 【JavaWeb】基础知识总结02 JSP
- JavaWeb-10(会话技术之session&JSP)