您的位置:首页 > 编程语言 > Java开发

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一样,只是它有自己的初始化和销毁方法。

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



隐含对象名称描 述
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对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: