JSP技术详解

1、JSP优点

(1)一次编写,到处运行;(2)支持多平台;(3)强大的可伸缩性,支持一台服务器或者集群;(4)众多开发工具的支持;


2、JSP基本语法

一般分为6种:

(1)编译语句:<%@ 指示名 [属性=“属性值”]%>,如:<%@ page contentType="text/html;charset=GBK"%>

(2)声明语句:<%! 声明语句;[声明语句;]...%>

(3)程序代码:<%程序代码%>

(4)注释语句:<%--注解--%>

(5)运算表达式:<%=表达式%>

(6)动作语句:<JSP:动作名[属性|...]/>


3、表单提交

<form name="form1" action="" method="post"> ... ... </form>

method的参数值可以为post或者get,都可以向服务器传送数据但是机制不一样:

(1)get是把参数数据队列追加到提交表单的Action属性所指的URL地址中,值和表单内各个字段一一对应,用户通过URL可以看到;

<form method="get" action="input.jsp?username=jsp">与<form method="get" action="input.jsp">是一样的,参数会被忽略;

安全性非常低;

(2)post是通过HTTP post机制,将表单内各个字段与内容放置在HTML Header内一起传送到Action属性所指的URL地址,用户看不到;

<form method="get" action="input.jsp?username=jsp">与<form method="get" action="input.jsp">是不一样的;

安全性较高;


4、JSP中两种include:

(1)<%@ include file="" %>,是在编译阶段执行;在JSP转换为Servlet之前与它融合;

(2)<JSP:include page="" flush="true" />,在请求阶段执行;引入执行页面或Servlet所生成的页面;


5、forword和sendRedirect

(1)form被提交至a.jsp时,在a.jsp中使用forword()重定向至b.jsp,form提交的参数会自动传递到b.jsp。执行时浏览器中地址不变;

(2)sendRedirect()可以带参数传递,同时它可以重定向至不同的主机上,浏览器中会出现重定向页面的URL地址;


6、JSP的内置对象

不用声明可直接使用,这些对象包括request、response、pageContext、session、application、out、config、page

(1)request对象:对象类型来自javax.servlet.http.HttpServletRequest接口

对象的方法:setAttribute()、getAttribute()、getAttributeNamesInScope()、removeAttribute()、getParameter()、getParameterNames()、、getParameterValues()、getParameterMap()、getHeader()、getHeaderNames()、getHeaders()、getIntHeader()、getDateHeader()、getCookies()、getContextPath()、getMethod()、getProtocol()、getQueryString()、getRequestedSessionId()、getRequestURL()、getRemoteAddr()、getRemoteHost()、getRemotePort()、getRemoteUser()、setCharacterEncoding();

(2)response对象:对象类型来自javax.servlet.http.HttpServletResponse接口

对象的方法:addCookies()、addDateHeader()、addHeader()、addIntHeader()、setDateHeader()、setHeader()、setIntHeader()、sendError()、setStatus()、encodeRedirectURL();

(3)pageContext对象:

a、提供JSP程序执行时期间所需要用到的属性的方法,如:session、application、config和out等;利用JSPFactory.getDefaultFactory()取得预设的JSPFactory对象,然后用这个对象的getPageContext()方法取得pageContext对象。

b、对象的方法:getException()、getOut()、getPage()、getRequest()、getResponse()、getServletConfig()、getServletContext()、getSession()、getAttribute()、getAttribute()、getAttributeNamesInScope()、getAttributeScope()、removeAttribute()、setAttribute()、findAttribute();

(4)session对象:对象类型来自javax.servlet.http.HttpSession接口,取得方式是调用pageContext.getSession()方法

对象的方法:getCreationTime()、getId()、getLastAccessedTime()、getMaxInactiveInterval()、setMaxInactiveInterval()、invalidate()、isNew();

(5)application对象:对象类型来自javax.servlet.ServletContext接口,取得方式是调用pageContext.getServletContext()方法

与session作用类似,最大不同在于作用域,Web服务器为每个用户创建一个session,但所有用户会共享一个application,一旦创建直到服务器关闭都存在;

对象的方法:getMajorVersion()、getMinorVersion()、getServerInfo()、getMimeType()、getContext()、getRealPath()、log();

(6)out对象:对象类型来自继承自抽象类javax.servlet.JSP.JSPWriter的类,取得的方式是调用pageContext.getOut()的方法

对象的方法:clear()、clearBuffer()、close()、getBufferSize()、getRemaining();


7、使用JSP操作Cookie

(1)写Cookie

<%

String cookieName="js";

Cookie cookie = new Cookie(cookieName,"js网页");

cookie.setMaxAge(365*24*60*60);

response.addCookie(cookie);

%>

(2)读取Cookie

<%

Cookie cookies=request.getCookies();

Cookie cookie=null;

String value=null;

String name=null;

for(int i=0;i<cookies.length;i++){

cookie = cookies[i];

name=cookie.getName();

value=cookie.getValue();

}

%>


8、利用缓存技术提高JSP性能

OSCache标记库由OpenSymphony设计,它是一个开源的框架,提供了现有的JSP页面内实现快速内存缓存的功能。

(1)加入页面声明:

<%@ taglib uri="cachetags" prefix="cache" %>

(2)缓存页面

<cache:cache> ...缓存的内容...</cache:cache>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值