通过一周对书本的学习,对jsp有了初步的认识,下面是一些总结。
一.jsp文件结构
.注释
html注释: 客户端网页代码可见,可以加入相关表达式 <!--当前时间:<%=new java.util.Date().tostring%> -->
隐藏注释: 一般的java类注释而已,不发回客户端
.脚本元素
声明: <%!xxx %> 声明的变量和函数被编译后形成servlet加载于内存,下次服务器重启才会重新编译
可以用来制作页面访问人数,或者是访问量较高做成函数并用这种形式
Date() d = new Date();
SimpleDateFormat t1 = new SimpleDateFormat("yyyy年mm月dd日");
SimpleDateFormat t2 = new SimpleDateFormat("hh时mm分ss秒");
t1.format(d); t2.format(d);
表达式
<%= xxx%> xxx代码变成字符串类型
一般代码
.指令元素 <%@ xxxx %> 编译阶段完成
include指令 <%@ include="filename"%> 静态包含而已,嵌入是在编译前发生
page指令 设置全局属性。 language import session autoflush......
taglib指令 自定义标记....
.动作元素 执行阶段动态完成
<jsp:forward> <jsp:forward page="目标文件">
<jsp:param name="xxx" value="xxx"/>
</jsp:forward>
<jsp:include> <jsp:include="相对路径"> 包含文件后原来文件中自包含文件之后的代码不将执行
参数传递
</jsp:include>
<jsp:plugin> 用于在浏览器中播放或显示对象
<jsp:useBean>
与<jsp:getProperty> <jsp:setProperty>经常搭配,用于访问类中属性
一个例子即可: <jsp:useBean id="Stu" class="com.Student" scope="page[request session application]">
id相当于类的对象了
<jsp:setProperty name="Stu" property="name" value="xx" [param="name"]/>
name=id 可以直接给值,也可以从表单传递赋值
<jsp:getProperty name="Stu" property="name">
.模板元素 即剩下的html代码
至此对jsp有了一定认识,就是一些语法,很简单,不过要和java相结合才行,所以有了内置对象
二.内置对象
.out out.print() clear() newLine().....还有一些感觉没怎么用过...
.request HttpServletRequest的子类,处理客户端请求。
getCookies() 返回一个cookie数组;
【1】setAttrbute(String name,Object obj); getAttrbute(String name); removeAttribute(String name)
【2】getAttributeNames() 获取request对象所有属性名,返回时一个Enumeration类的实例,可以用来从数据库拿出属性,通过select标签 选择....
getParameter(String name) 前一个页面name的值; getParameterNames(),客户端所有传来参数名字;getParameterValues()...
当然还有很多,取端口号,ip,路径,http头文件各种各样的函数多了去了....getHeader()...
.response
HttpservletResponse的子类...主要将处理后的数据发回客户端.对cookie操作很方便
addCookies(Cookie cookie)
sendRedirect(String url)....
与requeset对应,也还有一些乱七八糟的函数,setHeader().....
.session 主要为了保存用户信息,作用于整个回话期间
【1】【2】 同样的函数,只是作用范围有差异....
getId() 获取session对象string类型id
getServletContext() 获取jsp页面对应的ServletContext对象
isNew(); invalidate() 撤销
还可以 设置有效时间,创建时间等....
.application
与session很相似,都是后踢哎保存信息,但是生命周期不同...session对应一个用户,后者对应多个,与服务器一样同时存在...
javax.servlet.ServletContext()接口对应
getAttributes(),获取所有application属性值,与request和session不一样的函数,返回一个集合...
setAttribute() removeAttribute()....
getInitParameter(String name)获取name的初始值 getInitParameters() 获取初始值集合
还有一些函数不赘述...也可以用来统计网站访问量
.config
获取servlet初始数据结构,当一个servlet初始化时,容器利用config存放的初始值初始化servlet
.exception
.page
和this差不多,从jsp中获得内置对象....
其实到这里jsp也差不多了,后面都是涉及java的了....
三.servlet
servlet本质上就是一个java类,只是又一套api及相关的类和接口。主要用来作为后台处理前台请求的,调用service方法进行处理。
1)手动配置一个servlet步骤
2)生命周期
init()加载servlet时执行,只是一次 ,初始化操作
调用service(),用doget()或者dopost()进行处理。service()是核心方法。
destory() 扫尾工作,关闭数据库连接,保存值等
3)servle api
HttpServlet类
他是GenericServlet的类一个子类 其中init()和destory()是httpservlet继承的方法。
service()
public void service(HttpServletRequest req,HttpServletResponse res) throws Exception....
当有一个httpServlet对象被请求时,就会调用service()
response.setContentType("text/html;charset=utf-8")
PrintWriter out = response.getWriter()
destory()
ServletConfig GetServletConig()
GenericServlet类
继承他的类必须实现几个方法....
一些接口
Servlet ServletRequest ServletResponse ServletContext
4)Servlet监听
上下文监听 session监听 request监听....
5)servlet和jsp
后台和前台的差别,servlet输出html代码过于麻所以适合后台事物层处理,而jsp对于网页设计很方便,所以各有所长...
以上内容都是初学jsp涉及的,都是些皮毛,尤其是servlet部分,书上讲的东西不用很 快就会忘记。真正学东西还是在实践当中。
浙公网安备 33010602011771号