JSP笔记1Word文档下载推荐.docx
《JSP笔记1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JSP笔记1Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
StringgetRemoteHost()返回发送此请求的客户端主机名
voidsetAttribute(Stringkey,Objectobj)设置属性的属性值
StringgetRealPath(Stringpath)返回一虚拟路径的真实路径
2.response对象:
a)生成服务器端响应,然后将响应结果发送到客户端
response.getContentType()得到响应信息的头信息。
response.sendRedirect(StringURL)重新定向页面
3.out对象:
a)表示输出流,此输出流将作为请求发送到客户端
1.publicabstractvoidclear()
清除缓冲区中的内容,不将数据发送至客户端。
b)2.publicabstractvoidclearBuffer()
将数据发送至客户端后,清除缓冲区中的内容。
c)3.publicabstarctvoidclose()
关闭输出流。
d)4.publicabstractvoidflush()
输出缓冲区中的数据。
e)5.publicintgetBufferSize()
获取缓冲区的大小。
缓冲区的大小可用<
%@pagebuffer="
size"
%>
设置。
f)6.publicabstractintgetRemainning()
获取缓冲区剩余空间的大小
g)7.publicbooleanisAutoFlush()
获取用<
%@pageisAutoFlush="
true/false"
%>
设置的AutoFlush值。
h)8.publicabstractvoidnewLine()
输出一个换行字符,换一行。
i)9.publicabstractvoidprint()
显示各种数据类型的内容。
j)10.publicabstractvoidprintln()
分行显示各种数据类型的内容。
k)
l)以下的对象是作用域通信对象,主要作用就是来存放对象的。
4.session对象:
a)将我们写个对象放在这个session对象中,我们写个这个对象就在我们的会话中都存在
使用getAttribute("
"
"
)方法来把我们的对象放在session中比如:
Objectobj;
session.getAttribute("
name"
obj);
、、这个地方的name是可以自己写的
我们要取出来的话就写
);
然后在强制转换一下,就取出来了
5.application对象:
a)将我们写个对象放在这个application对象中,我们写个对象就在整个应用程序中都存在
放和取的方法是和session对象一样的
6.pageContext对象:
a)将我们写个对象放在这个pageContext对象中我们这个页面中存在
******************************************
pageContext对象相当于当前页面的容器,可以访问当前页面的所有对象。
pageContext对象的常用方法:
HttpSessiongetSession()取得当前页面的session对象。
ServletRequestgetRequest()取得当前页面的request对象。
ServletResponsegetResponse()取得当前页面的response对象。
ServletContextgetServletContext()取得当前页面的application对象。
ServletConfiggetServletConfig()取得当前页面的config对象。
ObjectgetPage()取得当前页面的page对象。
JspWritergetOut()取得当前页面的out对象。
ExceptiongetException()取得当前页面的exception对象。
b)以下这些对象在实际运用中page,config,exception对象用的很少.
7.page对象:
a)一般我们使用Page指令来替代使用这个对象
8.config对象:
a)一样的我们在页面中是使用很少的,一般会在Servlet中使用这个
9.exception对象:
1.用来处理异常的,
2.下面为这个exception对象来举个列子;
3.我有两个页面page1.jsp和page2.jsp
page1.jsp的代码
%@pagecontentType="
text/html;
charset=GBK"
errorPage="
page2.jsp"
html>
head>
title>
page1
/title>
/head>
body>
h1>
%=(3/0)%>
/body>
/html>
显然这个页面是有异常的就是我用绿色标出的地方,那么我在红色写的地方就是表示只要这个页面有异常就自动跳到page2.jsp中。
现在这个page2.jsp就是刚才page1.jsp出错的时候跳过来的,所以我的page2.jsp一定要指定为错误页面,也就是红色地方,
这样我就可以在页面写上<
%=exception.toString()%>
,他就显示在page1.jsp上的异常信息了,
page2.jsp的代码
isErrorPage="
true"
bodybgcolor="
#ffffff"
>
程序发生了错误<
/h1>
4个作用域
1.application:
整个应用程序
2.Session:
一次浏览器对话
3.Request:
一次请求
4.Page:
只在当前页面有效。
动态开发基础:
●B/S架构:
是指游览器和服务器进行交互。
阿斯顿
●C/S架构
Client/server
TOMCAT
源自apache开源网站,
●安装
到apache网站下载,安装到任意目录。
●tomcat目录结构
1./bin
存放各种平台下启动和停止
2./conf
存放tomcat和各种配置文件
3.Lib
存放tomcat所需的各种jar文件
4.Temp
Tomcat运行时存放的临时文件
5.Logs
Tomcat日志文件
6.Webapps
Web应用发布目录
7.Work
Tomcat吧由jsp生成的servlet存在这里
●Tomcat端口号配置
1、在tomcat目录找到conf目录
2、在conf目录中打开server.xml文件
3、在打开文件中找到connector节点。
修改端口号。
4、保存设置。
Ps:
prot=”端口号“
●Web程序
Web文件目录结构
8./
Web根目录下所有的文件客户端都可以访问到。
9./web-inf
存放应用程序所用的各种资源,
该目录及其子目录客户端无法访问。
其中包括web.Xml。
10./web-inf/classes
存放应用的所有class文件
11.Web-inf/lib
存放web应用所需要的jar。
配置web起始访问页
通过配置web.xml文件中的welcome节点。
列如:
welcome-file-list>
welcome-file>
index.html
欢迎文件可以有多个,依次查找可用的。
JSP概念部分
●Jsp执行过程
1、客户端发送请求到浏览器。
2、浏览器接受到请求后将对应的A。
Jsp文件进行编译。
3、A.jsp文件翻译成a.java(其实就是servlet类文件)文件。
4、A.java文件编译a.class文件。
5、A.class文件执行。
生成html文件。
6、将html文件返回给客户端。
jsp各个内置对象:
●session:
session是会话对象。
其中所有存储的数据都会在客户浏览器与服务器的一次会话中有效。
而关闭浏览器后全部释放。
session对象失效:
两种办法可以放session对象失效。
一:
定义超时:
session.setMaxInactiveInterval(600);
//该session对象600秒后失效。
二:
在项目web.xml中设置session的配置时间:
<
session-config>
<
session-timeout>
10<
/session-timeout>
/session-config>
这里的单位是分钟。
●application对象:
类似于系统的“全局变量”,用于全服务器中的所有用户数据共享。
生命周期:
当服务器停止重新启动后,中间的数据会清除。
JSP任务:
●请求和响应:
当页面中提交表单到对应的servlet中,便能使用request对象进行接收。
request.getAttribute("
属性名"
●响应:
使用request进行转发:
request.getRequestDispatcher("
).forward(request,response);
//使用转发,优点直接在服务器中进行跳转。
无需浪费一个连接资源。
使用response进行重定向。
response.sendRedirect("
//修改了客户端的网站,并且重新向该网址服务器发送了一次该网址的请求。
乱码问题:
●解决request中字符乱码问题:
设置:
request.setCharacterEncoding("
utf-8"
●使用filter过滤器解决乱码问题:
1、创建一个Servlet类:
2、将实现接口修改成javax.servlet.Filter
3、
将中间的doFilter修改成
request.setCharacterEncoding("
response.setCharacterEncoding("
chain.doFilter(request,response);
4、在web.xml写入:
filter>
filter-name>
Filter<
/filter-name>
filter-class>
Other.Filter<
/filter-class>
<
/filter>
filter-mapping>
url-pattern>
/*<
/url-pattern>
/filter-mapping>
●使用字符串方法解决乱码问题。
Stringasd=(String)request.getAttribute("
asd"
asd=newString(asd.getBytes(),"
//getBytes是字符串返回当前字符集的方法。
●使用filter过滤器配置
◆过滤器
publicclasssetEncodeFilterimplementsFilter{
//?
?
:
Stringencode;
publicvoiddestroy(){
}
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
//?
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
@Override
publicvoidinit(FilterConfigconfig)throwsServletException{
//?
config?
this.encode=config.getInitParameter("
code"
}
◆Web配置文件中
xmlversion="
1.0"
encoding="
UTF-8"
web-appversion="
3.0"
xmlns="
xmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
servlet>
servlet-name>
HelloWrodServlet<
/servlet-name>
servlet-class>
learn01.servlet.HelloWrodServlet<
/servlet-class>
/servlet>
servlet-mapping>
/HelloWrodServlet<
/servlet-mapping>
encodeFilter<
learn01.servlet.setEncodeFilter<
!
--?
-->
init-param>
param-name>
code<
/param-name>
param-value>
utf-8<
/param-value>
/init-param>
/web-app>
●过滤掉非法字符
解析:
要过滤掉用户提交的非法字符那么我们首先要得到用户提交的内容。
首先使用装饰流,复写HttpServletRequestWrapper
类。
代码如下:
◆复写类
packagecn.cljProject.other;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletRequestWrapper;
publicclassSpecialFilterextendsHttpServletRequestWrapper{
publicSpecialFilter(HttpServletRequestrequest){
super(request);
getparamet?
publicStringgetParameter(Stringstr){
Strings=super.getParameter(str);
returnreplaceParam(s);
privateStringreplaceParam(Strings){
if(s==null){
returnnull;
}
s=s.replace("
"
&
lt"
br/>
"
*"
returns;
◆过滤类
importjava.io.IOException;
importjavax.persistence.Entity;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
@Entity
publicclassEncordFilterimplementsFilter{
privateStringencord;
/**
*?
?
*/
request.setCharacterEncoding(this.encord);
response.setCharacterEncoding(this.encord);
request?
http?
request,?
chain.doFilter(newSpecialFilter((HttpServletRequest)request),response);
publicvoidinit(FilterConfigconf)throwsServletException{
this.encord=conf.getInitParameter("
encord"
◆Web配置