java的servlet是什么样的(java servlet 主要用来做什么)
大家好,关于java的servlet是什么样的很多朋友都还不太明白,今天小编就来为大家分享关于java servlet 主要用来做什么的知识,希望对各位有所帮助!
java servlet 主要用来做什么
简单一点说吧:
1.比如说你在一个网页上输入姓名和密码,然后点击提交。这时候页面就会跳转(跳转方法有post和get)。
2.跳转到哪呢,这就通过web.xml文件配置你的跳转,一般就跳转到servlet来处理。
3.servlet说白了,就是一个java类,继承HttpServlet,主要有doGet和doPost方法,你在页面代码写的是get方法跳转,那么就运行servlet里doGet方法里面的代码(post同理)。
4.doGet里面的代码就处理操作,一般首先用特定方法获得页面提交的姓名和密码,然后进行处理(判断是否合法等等),处理玩之后,决定是直接显示信息,还是跳转到其他页面。
servlet就是接受页面信息,然后进行逻辑处理的一个java类。
至于学习资料,网上找一个servlet的小例子很多,有java基础很容易看懂,没有基础也可以学会
JavaWeb开发中Servlet是那一层以及用法
JavaWeb开发中Servlet是属于控制层最底端的部分的,也就是MVC c的最底层。
他往往用来处理请求的。他的外一层就是View、他的一层就是Service(Servlet往往调用他做逻辑判断的操作)
原始的Servlet的生命周期
servlet在第一次访问的时候就会被初始化
servlet对象一旦被创建就会驻留在内存中,当服务器关闭或者web应用被移除的时候servlet对象才销毁
1:当servlet被创建的时候那么 servlet就会被初始化调用init方法
2:任何请求来自客户端,service方法就会被自动调用
3:当servlet从服务器被移除的时候 distroy方法将会被调用
如下是一个原始的Servlet代码(这并不是现在开发一贯的做法,请往下看)
importjavax.servlet.*;
classFirstServlet
extendsGenericServlet{
publicvoid
service(ServletRequestrequest,ServletResponseresponse)
throwsServletException,java.io.IOException
{
response.getWriter().write("hello
servlet");
}
}
ServletConfig
getServletConfig方法用来获得servlet的启动信息,和getServletInfo方法可以活的servlet的基本信息,和关于它自己的一些信息,例如作者,版本,版权等
为Servlet设置初始参数要在web.xml中配置(只对当前servlet有效)
如下是在Web.xml中为当前servlet配置初始化参数的。
<servlet>
<servlet-name>ServletConfigDemo</servlet-name>
<servlet-class>
cn.itcast.servlet.ServletConfigDemo</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>encoding2</param-name>
<param-value>utf-9</param-value>
</init-param>
</servlet>
ServletCofig对象可以通过this.getServletConfig来获得,因为在父类中已经在获得了ServletConfig对象;也可以servletconfig对象可以通过父类的init方法内穿过来的config对象获取
publicvoidinit(ServletConfigconfig)throwsServletException{this.config=
config;this.init();}publicServletConfiggetServletConfig()
{returnconfig;}
ServletContext
通常我们称ServletContext叫Application对象。也叫域对象
Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回
通常获得ServletContext的方法是直接getservletcontext
因为在父类中已经定义了这样的方法,子类直接继承使用
ServletContext对象的引用。getServletContext().getInitParameter("a")
的方式获得web应用的初始化参数
我们还可以为整个web应用配置初始化参数
Request& Response
基本servlet中service的方法的request和 response对象分别是
RequestFacade和 ResponseFacade这个类是Tomcat中的类
他继承自HttpServletRequest而 HttpServletRequest又继承 ServletRequest(Response同理)
一些常用方法:
request.getRequestURL();获得URl
request.getHeader("accept-encoding");获得支持的压缩格式
request.getHeader("referer");获得来自哪里(防盗链)
request.getInputStream();获得消息体
request.getParameter("name")获得参数
如下是现代开发中常用的Servlet
publicclass
UpLoadServletextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException
{
}
publicvoid
doPost(HttpServletRequestrequest,HttpServletResponse
response)
throws
ServletException,IOException{
doGet(request,
response);
}
}
什么是servlet
1.什么是SERVLET?
Servlet是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容.
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,我们一般将Servlet理解为后者。
这段话可能听起来有些绕,但如果大家把Servlet与Spring MVC的前端控制器 DispatcherServlet
结合起来理解,应该立马就知道它是做什么的了. Servlet是Java JDK提供的一个接口,所有的Servlet都继承于它,
而DispatcherServlet是一个继承了实现了Servlet接口的类的类.
2.知识剖析
Servlet的生命周期
Servlet的生命周期分为三个阶段,分别对应Servlet中的三个接口.
init()初始化.
service()处理客户端的请求,具体业务逻辑. ServletRequest对象用于获得客户端信息,ServletResponse对象用于向客户端返回信息(客户端可以理解为浏览器)
destroy()结束时调用.这个方法只有在servlet的service方法内的所有线程都退出的时候,或在超时的时候才会被调用。
init()和 destroy()都只会在Servlet创建和销毁时调用一次,而service()则会在响应不同请求时多次调用.
注意Servlet是一个接口,实现了servlet的类,是不能直接处理请求的.
请求需要通过Servlet容器来发送到Servlet, Servlet是运行在Servlet容器中的.
Servlet容器是Web服务器和servlet进行交互的必不可少的组件。常见Web服务器有Tomcat, jetty, resin,它们也可以称为应用服务器
3.常见问题
1. Servlet如何接收才能接收到Servlet容器发来的请求?
2. Servlet什么时候被初始化?
3. DispatcherServlet如何处理容器发来的请求?
4.解决方案
1. Servlet容器通过监听端口(8080)来接收用户发送的请求,然后通过web.xml中的 Servlet-mapping配置,来匹配到请求Heades中的url信息,将其转发到对应Servlet配置中的Servlet实现类完成请求接收.
2. Servlet的初始化是由Web.xml中的 loadOnStartup配置控制的.
当 loadOnStartup< 0或者不写时,接收到第一次请求的时候实例化.
当 loadOnStartup> 0 web容器启动的时候做实例化处理,顺序是由小到大,正整数小的先被实例化
当 loadOnStartup= 0 web容器启动的时候做实例化处理,相当于是最大整数,因此web容器启动时,最后被实例化
3.通过DispatcherServlet的执行流程来看它时如何处理请求的
希望对您有所帮助!~
好了,关于java的servlet是什么样的和java servlet 主要用来做什么的问题到这里结束啦,希望可以解决您的问题哈!