`
heimeiyingwang
  • 浏览: 94931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet资料辅导(2)

阅读更多

Servlert

servlet接口的实现类中的service()方法,在继承HttpServlet类时,如果没有覆盖父类的service()方法,那么父类的service()方法会根据请求类型不同的会分别调用覆盖的doGet(),doPost()方法,如果响应两种请求的动作相同,那么可以直接覆盖service()方法。如果覆盖了
doGet(),doPost()方法之一,那么就会只对一种请求作出相应。在浏览器的地址栏操作按回车键,或者是热连接,都是get请求,form的method属性如果不指定,默认为get请求。

 

我们可以通过ServletRequest对象或HttpServletRequest对象的方法来获取请求中传送的参数。
getParameter(String name)方法,可以获得form表单中指定名字的参数,多参数同名时,只取一个。
getParameterNames(),可以获得一个迭代器Enumeration,通过这个迭代器,来获得form表单中参数的名字。
getParameterValues(String name)获得指定的所有同名参数的值。

 

get请求,会将参数显示在浏览器的地址栏上,其显示格式,在地址之后会以问号开始,以'&'分隔参数,可以通过HttpServletRequest对象的getQueryString()方法来获得get请求的参数值。

ServletRequest对象的getInputStream()方法可以获得一个由Socket得来的输入流,可以使用这个流来实现文件的上传。getReader()方法可以直接获取post请求的参数。

 

ServletContext对象是Servlet的上下文对象,这个对象是在服务器启动时创建的,他可以看作是
一个应用的对象,他可以看作是包含Servlet,管理Servlet的对象。

 

servlet的生命周期


遵守servlet规范的类,就可以通过服务器产生对象(反射机制),并处理请求。

servlet接口中的方法
实现Servlet接口
public class TestServlet implements Servlet {
 ServletConfig config;
 public void init(ServletConfig config) throws ServletException {
  this.config=config;
  //这个ServletConfig对象是由服务器生成,也就是有系统提供的,
                  通过他可以获得启动信息。ServletConfig对象和Servlet是一一对应的。
  //这个方法是在Servlet创建后调用的。如果要是用到ServletConfig对象是一    定要为对象赋值。
 }

 public ServletConfig getServletConfig() {
  return this.config;
 }

 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
  ...;//这个方法是用来处理请求的核心方法
 }

 public String getServletInfo() {
  return "....";//这个是用来写Servlet信息的,用来写作者,以及版本信息
 }

 public void destroy() {
  ...;//这个方法是用来销毁Servlet对象的
 }

}

 

HttpServlet和GenericServlet都实现了Servlet接口。
HttpServlet中的service(HttpServletRequest request,HttpServletResponse response)方法是通过service(ServletRequest request,ServletResponse response)方法的调用来实现对请求的处理。

Servlet的生命周期分为四个阶段


1,创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。(默认)


2,调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次


3,响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。


4,在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。

 

 

 

可以通过web.xml文件可以配置Servlet对象的创建时间,
<load-on-startup>数字</load-on-startup>,表示服务器启动时创建,并依照数字大小按顺序创建,只用重要的Servlet才会是用这个设置。

可以通过<init-param>标签来配置初始化参数,可以用ServletConfig对象的
getInitParameter(String name)方法来得到参数。
 
<init-param>
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>

多线程下所操作的变量,如果操作的是一个变量,且兼有读写操作,就要考虑加上同步,但同步不能乱加,否则会造成死锁问题。

 

init()和destroy()方法都是运行在单线程下的。

GenericServlet类中的有参和无参的init方法。
  public void init(ServletConfig config)throws ServletException
    {
        this.config = config;
        init();
    }

    public void init()throws ServletException
    {
 .....;//覆盖了的无参的init()方法,会在Servlet创建时调用有参的init方法时
  也会被调用。
    }
 
HttpServlet类中参数不同的service方法的调用关系。
public void service(HttpServletRequest req,HttpServletResponse res){
 .......;
 .......;
}
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException
    {
        HttpServletRequest request;
        HttpServletResponse response;
        try
        {
            request = (HttpServletRequest)req;
            response = (HttpServletResponse)res;
        }
        catch(ClassCastException e)
        {
            throw new ServletException("non-HTTP request or response");
        }
        service(request, response);
    }

 

Servlet的资源访问

在Servlet中可以访问,JDBC,RMI(远程方法调用),以及跨语言平台的组件等资源。

在Servlet中是用JDBC很容易,也就是在Servlet中调用JDBC中的方法,就可以实现对数据库的访问。

分享到:
评论

相关推荐

    利用servlet技术实现一个简单的聊天室

    2. 在实验完成时需要向辅导教师报告,以记录实验成绩,实验成绩以百分制记录;实验不得抄袭,否则不记成绩。 提示: 1. 需要实现一个静态登录页面及一个servlet 2. 对于聊天信息的保存可能用到servletcontext 3. ...

    学生信息管理系统(JSP+Servlet)

    2. **Servlet生命周期**:包括加载、初始化、服务和销毁四个阶段。在学生信息管理系统的实现中,可能需要自定义Servlet的初始化参数,以便配置数据库连接信息。 3. **数据库连接**:通常使用JDBC(Java Database ...

    基于 jsp+servlet+jdbc 学生请假信息管理系统课程设计

    该项目是基于jsp+servlet+jdbc的学生请假信息管理系统-可用于大学生日常课设 1.后端开发技术:servlet+jdbc 2.前端技术:jsp 3.前端ui:经典蓝色ui 4.功能点描述: (1)学生 查看个人信息、查看个人的晚归记录、填写...

    利用servlet实现一个简单的聊天室

    1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。...2. 在实验完成时需要向辅导教师报告,以记录实验成绩,实验成绩以百分制记录;实验不得抄袭,否则不记成绩。

    4.3javaEE_原生Servlet_SqlServer医院管理住院系统的研究与实现.zip

    2. **Servlet**:Servlet是JavaEE中的核心组件之一,用于扩展服务器的功能。在这个项目中,Servlet主要负责接收HTTP请求,处理业务逻辑,然后返回响应。原生Servlet是指不依赖任何容器库,直接使用Java标准API编写的...

    jsp+servlet请假系统

    2. **Servlet生命周期**:与JSP类似,Servlet也经历了初始化、服务和销毁三个阶段。但与JSP不同的是,Servlet实例通常为每个客户端请求共享,提高了性能。 3. **Servlet配置**:通过`web.xml`部署描述符文件,可以...

    4.6javaEE_原生Servlet_MySql酒店管理系统的设计与实现.zip

    《基于JavaEE、原生Servlet和MySQL的酒店管理系统设计与...项目的"项目辅导视频"和"论文等资料"可以进一步深入学习各个模块的具体实现细节,而"源代码"则可供开发者参考和学习,"项目截图"展示了系统的实际运行效果。

    辅导答疑管理系统

    2. **MVC(Model-View-Controller)设计模式**:辅导答疑系统很可能采用了MVC架构,将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离,有利于代码的维护和扩展。Model处理数据,View展示信息,...

    2009年Java认证辅导资料

    Java认证是全球认可的Java程序员技能评估标准,2009年的Java认证辅导资料涵盖了当时最新的Java技术,旨在帮助考生顺利通过考试并提升其Java编程能力。这些资料可能包括了Oracle Certified Associate (OCA), Oracle ...

    基于JSP+Servlet+ Mysql的宿舍管理系统.zip

    4. 权限管理:设置不同角色(如管理员、辅导员等)的权限,确保数据安全。 5. 报表统计:生成各类统计报表,如空余床位、住宿率等。 【开发工具与环境】 开发过程中,可能使用了Eclipse或IntelliJ IDEA作为集成开发...

    基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(源码+文档)-JAVAEE-Servlet-旅游网站

    资源名字:基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(源码+文档)_JAVAEE_Servlet_旅游网站 资源类型:项目全套源码+文档+辅导视频 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合...

    5.0javaEE_原生Servlet_MySql塞北村镇旅游网站设计.zip

    2. **Servlet**: Servlet是Java EE中的核心组件之一,主要用于扩展服务器的功能。在本项目中,Servlet被用来处理HTTP请求,执行业务逻辑,然后返回响应给客户端。原生Servlet指的是没有使用任何框架,如Spring MVC...

    javaWeb基础技术辅导

    #### Servlet辅导 Servlet是一种Java技术,用于扩展服务器的功能,特别是处理HTTP请求和响应。它相当于服务器端的小应用程序,可以接收客户端发送的请求,执行相应的业务逻辑,并返回响应结果。Servlet生命周期包括...

    毕业设计,城市公交查询系统,内含毕业论文、毕业答辩PPT、数据库以及项目辅导视频,使用的技术有Servlet、JSP

    城市公交查询系统介绍 我国许多城市都有一些颇具设计感的公交站台,但我们却很难在这里找到我们出行需要的信息。...5.训练检索文献资料和利用文献资料的能力; 6.训练撰写技术文档与学位论文的能力。

    4.5javaEE_原生Servlet_MySql网络考试系统的设计与实现.zip

    项目辅导视频、论文等资料可以进一步指导开发过程,帮助理解和解决问题。数据库文件和源代码提供了具体实现细节,通过阅读和分析这些内容,可以深入学习到实际开发中的技巧和最佳实践。项目截图则能直观展示系统功能...

    基于JAVAWEB的辅导员考评管理系统.zip

    2. **架构设计**:此系统可能采用了MVC(Model-View-Controller)架构模式,将业务逻辑(Model)、数据展示(View)和用户交互(Controller)分离,以提高代码的可维护性和可扩展性。 3. **数据库管理**:数据库是...

    javaEE_原生Servlet_MySql银行柜员业务绩效考核系统的设计与实现(源码+数据库sql+论文+视频齐全).zip

    2. **Servlet**:Servlet是Java编程语言中用于动态生成Web内容的一组接口和类。在本项目中,Servlet作为服务器端的主要处理组件,负责接收HTTP请求,处理业务逻辑,并返回响应结果。 3. **MySQL数据库**:MySQL是一...

Global site tag (gtag.js) - Google Analytics