JavaWeb-----实现第一个Servlet程序

1.Servlet简介

     Servlet是在服务器端运行的一个小程序,实际上一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内

存里的servlet程序。主要用来处理客户端请求、响应给浏览器的动态资源

2.Servlet原理

Web服务器在与客户端交互时.Servlet的工作原理是:

  • 在客户端对web服务器发出请求
  • web服务器接收到请求后将其发送给Servlet
  • Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器
  • web服务器将从Servlet实例对象中收到的响应结构发送回客户端

3.Servlet生命周期

  • 装载Servlet
  • Server创建一个Servlet实例
  • Server调用Servlet的init方法,只初始化一次
  • 一个客户端请求到达Server
  • Server创建一个请求对象
  • Server创建一个响应对象
  • Server激活Servlet的service方法,传递请求和响应对象作为参数
  • service方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
  • service方法使用响应对象的方法。将响应传回Server,最终到达客户端
  • 对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此servlet的service方法,将这两个对象作为参数传递给它
  • 当Server不再需要Servlet时,比如当Server要关闭时,Server调用Servlet的destroy

4.第一个Servlet实例

配置Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>Servlet_HelloWorld</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>com.servlets.HelloWorldServlet</servlet-class>
        <!-- 当值为0或者大于0时,表示容器在启动时就加载并初始化这个servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

Servlet处理类

package com.servlets;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

//@WebServlet("/helloworldservlet") 可以在Web.xml中配置servlet代替
public class HelloWorldServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public HelloWorldServlet() {
        super();
        System.out.println("创建Servlet实例");
    }

    public void init(ServletConfig config) throws ServletException {
        System.out.println("初始化");
    }

    public void destroy() {
        System.out.println("销毁");
    }

    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("调用service()方法");
        response.setCharacterEncoding("UTF-8");
        //获得参数
        String userName = request.getParameter("userName");
        String userPwd = request.getParameter("userPwd");
        //将数据存入Session
        HttpSession session = request.getSession();
        session.setAttribute("userName", userName);
        session.setAttribute("userPwd", userPwd);
        //转发
        request.getRequestDispatcher("/success.jsp").forward(request, response);
    }
}

JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>First Servlet</title>
</head>
<body>
    <a
        href="${pageContext.request.contextPath}/helloworldservlet.do?userName=张三&userPwd=123456">HelloWorld!</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>${userName}</h1>
    <h1>${userPwd}</h1>
</body>
</html>

注意:若是service()、doPost()和doGet()这三个方法都在存在的情况下,java只会执行service()方法,而其他的两种方法不会被执行。若是没有service() 方法,则是根据jsp传入方式选择对应的方法

原文地址:https://www.cnblogs.com/fengfuwanliu/p/10512689.html

时间: 2024-09-28 23:09:23

JavaWeb-----实现第一个Servlet程序的相关文章

JavaWeb之第一个Servlet程序

我使用的编辑器是Intellj Idea,并且配置maven插件,无论是Intellj还是eclipse,重要的是编程思想,无所谓编辑器. 1. 编写一个Servlet实现类:HelloServlet: import javax.servlet.*; import java.io.IOException; public class HelloServlet implements Servlet { @Override public void init(ServletConfig servletC

Java Web(2):第一个 Servlet 程序

Servlet 是 Java 服务端程序,Servlet 程序是运行在服务器上的 Seervlet 程序代码: package g.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequ

Servlet快速入门:第一个Servlet程序

Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息的程序是不同的.而这些处理程序则必须实现这套规范才能接收请求并作出响应.这套规范本身并不由Java提供,需要引入额外的Jar包,这些包存在于Tomcat中,编写的Servlet程序也需要承载在Tomcat上才可以运行. 一个Servlet程序 通过IDEA创建一个Web Application 填写

动手学servlet(1) 第一个servlet程序

1.文件>新建>动态WEB项目 "javaeedemo">在Java Resource的src下新建包“servletdemo”,包下新建一个类“MyServet”,另外在WebContent>WEB_INF下新建一个XML文件,这个是servlet的配置文件,稍后会用到 2.MyServet类必须继承HttpServlet,示例代码如下 package servletdemo; import java.io.IOException; import java.i

我的第一个Servlet程序和Servlet的生命周期函数

一.Servlet概念: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的 Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者. Servlet运行于支持Java的应用服务器中.从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用

MyEclipse实现第一个Servlet程序

前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功,这给初学者带来了一 定烦恼,我也是为此烦恼过几小时.现手把手介绍利用MyEclipse,连接tomcat服务器,建立自己的第一个Servlet程序.java web开发相关的理论及其他知识在此处未做讨论.文章末尾给出了一些常见错误的解决方法. 1.手把手教你建立第一个Servlet 以下操作在win7下切记是以管理员身份运行MyEclips

Servlet&amp;JSP学习笔记:第一个Servlet程序

第一个Servlet程序代码如下,接着根据这个小程序逐步讲解. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletReq

【转】MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题

MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题 前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功,这给初学者带来了一定烦恼,我也是为此烦恼过几小时.现手把手介绍利用MyEclipse,连接tomcat服务器,建立自己的第一个Servlet程序.java web开发相关的理论及其他知识在此处未做讨论.文章末尾给出了一些常见错误的解决

创建第一个servlet程序--HelloServlet

这篇文章是用来纪念我第一次创建一个Servlet程序,步骤我会写得详细点,也可以参考一下,后续我会将SpringMVC 跟ssh的搭建分别更新(ps:不忙的话我会更新) 工具:java jdk 1.6(或以上)   eclipse  tomcat7.0(6.0也行,步骤都差不多) 1.首先,我们先创建一个Dynamic Web Project 接下来给你创建的程序命名,选择你的服务器类型(我这里选择的是tomcat 7.0 所以版本是3.0),输入你的应用名后接下来next就可以了. 勾上红框内

[原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------