Java Web基础知识整理Word下载.docx

上传人:b****5 文档编号:18614000 上传时间:2022-12-29 格式:DOCX 页数:98 大小:830.63KB
下载 相关 举报
Java Web基础知识整理Word下载.docx_第1页
第1页 / 共98页
Java Web基础知识整理Word下载.docx_第2页
第2页 / 共98页
Java Web基础知识整理Word下载.docx_第3页
第3页 / 共98页
Java Web基础知识整理Word下载.docx_第4页
第4页 / 共98页
Java Web基础知识整理Word下载.docx_第5页
第5页 / 共98页
点击查看更多>>
下载资源
资源描述

Java Web基础知识整理Word下载.docx

《Java Web基础知识整理Word下载.docx》由会员分享,可在线阅读,更多相关《Java Web基础知识整理Word下载.docx(98页珍藏版)》请在冰豆网上搜索。

Java Web基础知识整理Word下载.docx

--需要和某一个servlet标签的serlvet-name子标签的文本节点一致-->

--映射具体的访问路径:

/代表当前WEB应用的根目录.-->

url-pattern>

/hello<

/url-pattern>

/servlet-mapping>

三、Servlet容器:

运行Servlet、JSP、Filter等的软件环境.

1).可以来创建Servlet,并调用Servlet的相关生命周期方法.

2).JSP,Filter,Listener,Tag...

四、Servlet生命周期的方法:

以下方法都是由Serlvet容器负责调用.

1).构造器:

只被调用一次.只有第一次请求Servlet时,创建Servlet的实例.调用构造器.

这说明Serlvet的单实例的!

2).init方法:

只被调用一次.在创建好实例后立即被调用.用于初始化当前Servlet.

3).service:

被多次调用.每次请求都会调用service方法.实际用于响应请求的.

4).destroy:

只被调用一次.在当前Servlet所在的WEB应用被卸载前调用.用于释放当前Servlet所占用的资源.

五、load-on-startup参数:

1).配置在servlet节点中:

secondServlet<

com.atguigu.javaweb.SecondServlet<

--可以指定Servlet被创建的时机-->

load-on-startup>

2<

/load-on-startup>

2).load-on-startup:

可以指定Serlvet被创建的时机.若为负数,则在第一次请求时被创建.若为0或正数,则在当前WEB应用被

Serlvet容器加载时创建实例,且数组越小越早被创建.

六、关于serlvet-mapping:

1).同一个Servlet可以被映射到多个URL上,即多个<

元素的<

子元素的设置值可以是同一个

Servlet的注册名。

2).在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:

一种格式是“*.扩展名”,

另一种格式是以正斜杠(/)开头并以“/*”结尾。

<

/*<

/*表示所有类型可匹配

OR

*.html<

*.html匹配.html

注意:

以下的既带/又带扩展名的不合法.

/*.action<

七、ServletConfig:

封装了Serlvet的配置信息,并且可以获取ServletContext对象

1).配置Serlvet的初始化参数

--配置Serlvet的初始化参数。

且节点必须在load-on-startup节点的前面-->

init-param>

<

--参数名-->

param-name>

user<

/param-name>

--参数值-->

param-value>

root<

/param-value>

/init-param>

password<

1230<

-1<

2).获取初始化参数:

>

getInitParameter(Stringname):

获取指定参数名的初始化参数

getInitParameterNames():

获取参数名组成的Enumeration对象.

Stringuser=servletConfig.getInitParameter("

user"

);

System.out.println("

user:

"

+user);

Enumeration<

String>

names=servletConfig.getInitParameterNames();

while(names.hasMoreElements()){

Stringname=names.nextElement();

Stringvalue=servletConfig.getInitParameter(name);

System.out.println("

^^"

+name+"

:

+value);

}

3).获取Serlvet的配置名称(了解)

八、ServletContext

1).可以由SerlvetConfig获取:

ServletContextservletContext=servletConfig.getServletContext();

 

2).该对象代表当前WEB应用:

可以认为SerlvetContext是当前WEB应用的一个大管家.可以从中获取到当前WEB应用的各个方面的信息.

①.获取当前WEB应用的初始化参数

设置初始化参数:

可以为所有的Servlet所获取,而Servlet的初始化参数只用那个Serlvet可以获取.

--配置当前WEB应用的初始化参数-->

context-param>

driver<

com.mysql.jdbc.Driver<

/context-param>

方法:

getInitParameter

getInitParameterNames

代码:

Stringdriver=servletContext.getInitParameter("

driver"

System.out.println("

driver:

"

+driver);

Enumeration<

names2=servletContext.getInitParameterNames();

while(names2.hasMoreElements()){

Stringname=names2.nextElement();

-->

+name);

}

②.获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径

getRealPath(Stringpath);

StringrealPath=servletContext.getRealPath("

/note.txt"

System.out.println(realPath);

③.获取当前WEB应用的名称:

getContextPath()

StringcontextPath=servletContext.getContextPath();

System.out.println(contextPath);

④.获取当前WEB应用的某一个文件对应的输入流.

getResourceAsStream(Stringpath):

path的/为当前WEB应用的根目录.

InputStreamis2=servletContext.getResourceAsStream("

/WEB-INF/classes/jdbc.properties"

⑤.和attribute相关的几个方法:

九、GET请求和POST请求:

1).使用GET方式传递参数:

①.在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。

②.如果网页中的<

form>

表单元素的method属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。

③.使用GET请求方式给WEB服务器传递参数的格式:

④.使用GET方式传送的数据量一般限制在1KB以下。

2).使用POST方式传递参数:

①.POST请求方式主要用于向WEB服务器端程序提交FORM表单中的数据:

form表单的method置为POST

②.POST方式将各个表单字段元素及其数据作为HTTP消息的实体内容发送给WEB服务器,传送的数据量要比使用GET方式传送的数据量大得多。

POST/counter.jspHTTP/1.1

referer:

http:

//localhost:

8080/Register.html

content-type:

application/x-www-form-urlencoded

host:

localhost:

8080

content-length:

43

name=zhangsan&

password=123--请求体中传递参数.

十、如何在Serlvet中获取请求信息:

1).Servlet的service()方法用于应答请求:

因为每次请求都会调用service()方法

publicvoidservice(ServletRequestrequest,ServletResponseresponse)

throwsServletException,IOException

ServletRequest:

封装了请求信息.可以从中获取到任何的请求信息.

ServletResponse:

封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现.

这两个接口的实现类都是服务器给予实现的,并在服务器调用service方法时传入.

2).ServletRequest:

①.获取请求参数:

StringgetParameter(Stringname):

根据请求参数的名字,返回参数值.

若请求参数有多个值(例如checkbox),该方法只能获取到第一个提交的值.

String[]getParameterValues(Stringname):

根据请求参数的名字,返回请求参数对应的字符串数组.

EnumerationgetParameterNames():

返回参数名对应的Enumeration对象,

类似于ServletConfig(或ServletContext)的getInitParameterNames()方法.

MapgetParameterMap():

返回请求参数的键值对:

key:

参数名,value:

参数值,String数组类型.

②.获取请求的URI:

HttpServletRequesthttpServletRequest=(HttpServletRequest)request;

StringrequestURI=httpServletRequest.getRequestURI();

System.out.println(requestURI);

///day_29/loginServlet

③.获取请求方式:

Stringmethod=httpServletRequest.getMethod();

System.out.println(method);

//GET

④.若是一个GET请求,获取请求参数对应的那个字符串,即?

后的那个字符串.

StringqueryString=httpServletRequest.getQueryString();

System.out.println(queryString);

//user=atguigu&

password=123456&

interesting=game&

interesting=party&

interesting=shopping

⑤.获取请求的Serlvet的映射路径

StringservletPath=httpServletRequest.getServletPath();

System.out.println(servletPath);

///loginServlet

⑥.和attribute相关的几个方法:

3).HttpServletRequest:

是SerlvetRequest的子接口.针对于HTTP请求所定义.里边包含了大量获取HTTP请求相关的方法.

4).ServletResponse:

①.*getWriter():

返回PrintWriter对象.调用该对象的print()方法,将把print()中的参数直接打印

到客户的浏览器上.

②.设置响应的内容类型:

response.setContentType("

application/msword"

③.voidsendRedirect(Stringlocation):

请求的重定向.(此方法为HttpServletResponse中定义.)

-----------------------------------------------------------------------------

在web.xml文件中设置两个WEB应用的初始化参数,user,password.

定义一个login.html,里边定义两个请求字段:

user,password.发送请求到loginServlet

在创建一个LoginServlet,在其中获取请求的user,password.比对其和web.xml文件中定义的请求参数是否一致

若一致,响应Hello:

xxx,若不一致,响应Sorry:

xxxxxx为user.

补充:

http:

8080/day0001/app/index.jsp

getContextPath()-----/day0001

getServletPath()-----/app/index.jsp

getRequestUri()------/day0001/app/index.jsp

Day2

一、GenericServlet(了解):

1).是一个Serlvet.是Servlet接口和ServletConfig接口的实现类.但是一个抽象类.其中的service方法为抽象方法

2).如果新建的Servlet程序直接继承GenericSerlvet会使开发更简洁.

3).具体实现:

①.在GenericServlet中声明了一个SerlvetConfig类型的成员变量,在init(ServletConfig)方法中对其进行了初始化

②.利用servletConfig成员变量的方法实现了ServletConfig接口的方法

③.还定义了一个init()方法,在init(SerlvetConfig)方法中对其进行调用,子类可以直接覆盖init()在其中实现对Servlet的初始化.

④.不建议直接覆盖init(ServletConfig),因为如果忘记编写super.init(config);

而还是用了SerlvetConfig接口的方法,

则会出现空指针异常.

⑤.新建的init(){}并非Serlvet的生命周期方法.而init(ServletConfig)是生命周期相关的方法.

publicabstractclassGenericServletimplementsServlet,ServletConfig{

/**以下方法为Servlet接口的方法**/

@Override

publicvoiddestroy(){}

publicServletConfiggetServletConfig(){

returnservletConfig;

publicStringgetServletInfo(){

returnnull;

privateServletConfigservletConfig;

publicvoidinit(ServletConfigarg0)throwsServletException{

this.servletConfig=arg0;

init();

publicvoidinit()throwsServletException{}

publicabstractvoidservice(ServletRequestarg0,ServletResponsearg1)

throwsServletException,IOException;

/**以下方法为ServletConfig接口的方法**/

publicStringgetInitParameter(Stringarg0){

returnservletConfig.getInitParameter(arg0);

publicEnumerationgetInitParameterNames(){

returnservletConfig.getInitParameterNames();

publicServletContextgetServletContext(){

returnservletConfig.getServletContext();

publicStringgetServletName(){

returnservletConfig.getServletName();

二、HttpServlet:

1).是一个Servlet,继承自GenericServlet.针对于HTTP协议所定制.

2).在service()方法中直接把ServletReuqest和ServletResponse转为HttpServletRequest和HttpServletResponse.

并调用了重载的service(HttpServletRequest,HttpServletResponse)

在service(HttpServletRequest,HttpServletResponse)获取了请求方式:

request.getMethod().根据请求方式有创建了

doXxx()方法(xxx为具体的请求方式,比如doGet,doPost)

@Override

publicvoidservice(ServletRequestreq,Ser

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1