JavaWeb开发中Servlet是那一层以及用法

RT... RT 展开
 我来答
傲睨万世
推荐于2017-09-04 · 超过44用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:144万
展开全部

JavaWeb开发中Servlet是属于控制层最底端的部分的 ,也就是MVC c的最底层。

他往往用来处理请求的。他的外一层就是View、他的一层就是Service(Servlet往往调用他做逻辑判断的操作)


原始的Servlet的生命周期

servlet在第一次访问的时候就会被初始化


servlet对象一旦被创建就会驻留在内存中,当服务器关闭或者web应用被移除的时候servlet对象才销毁



1:当servlet被创建的时候那么 servlet就会被初始化 调用init方法


2:任何请求来自客户端,service方法就会被自动调用


3:当servlet从服务器被移除的时候 distroy方法将会被调用


如下是一个原始的Servlet代码(这并不是现在开发一贯的做法,请往下看)

import javax.servlet.*;
class FirstServlet 
extends GenericServlet {
    public void 
service(ServletRequest request, ServletResponse response)
            throws ServletException, 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对象获取

    public void init(ServletConfig config) throws ServletException {        this.config = 
config;        this.init();    }    public ServletConfig getServletConfig() 
{        return config;    }

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

public class 
UpLoadServlet extends HttpServlet 
{
    public void doGet(HttpServletRequest request, 
HttpServletResponse response)
            throws ServletException, IOException 
{
    }
    public void 
doPost(HttpServletRequest request, HttpServletResponse 
response)
            throws 
ServletException, IOException {
        doGet(request, 
response);
    }
}

    

198901245631
推荐于2017-10-07 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1705万
展开全部
Servlet属于MVC结构中的控制层,也就是连接页面和数据库的那个层次。
扩展:
m(model)模型,代表的是数据库层,通常用到的是:oracle、db2、mysql等sql知识;
v(view)视图,代表的是页面(相关),通常用到的是:html5、jsp,js等页面知识;
c(Controller)控制,代表的控制器,通常用到一些框架知识,如ssh(struts,spring,hibernate)。
备注:mvc实际上是一个很宽泛的内容,根据用到的技术不同,需要实现的业务逻辑不一样,所以灵活开发配置即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张川1990
2013-08-30 · TA获得超过362个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:151万
展开全部
servlet就是控制器 当然是mvc中的c了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式