当前位置:   article > 正文

javaweb实验:Servlet应用开发_javabean及servlet使用实验总结

javabean及servlet使用实验总结

前言

本实验的目的是掌握Servlet的基本概念和编程技巧,了解Servlet的生命周期和工作原理,学习如何使用Servlet处理客户端的请求和响应,以及如何在Servlet中使用JavaBean、Session、Cookie等技术实现数据的存取和传递。

本实验分为四个部分:

第一部分:创建一个简单的Servlet程序,了解Servlet的配置和运行方式,以及如何在Servlet中获取请求参数和输出响应内容。

第二部分:使用Servlet处理表单请求

第三部分:在Servlet中获取应用程序配置参数,并在页面上显示结果。

第四部分:使用Servlet处理用户登录请求,根据登录验证结果,分别跳转至登录成功页面和登录失败页面。

实验目的

  1. 学会 Servlet的创建、配置及运行方法;
  2. 学会使用Servlet获取表单数据;
  3. 学会配置和获取应用初始化参数的方法;
  4. 学会使用Servlet的跳转方法实现客户端跳转和服务器端跳转。

实验内容

(一)编写和运行一个简单的Servlet,向浏览器窗口(页面)输出如下内容:“Welcome to China!”、“热情好客的中国欢迎您!”和系统当前时间。输出效果如图所示
在这里插入图片描述
(二)使用Servlet处理表单请求

(三)在Servlet中获取应用程序配置参数。

(四)使用Servlet处理用户登录请求,根据登录验证结果,分别跳转至登录成功页面和登录失败页面。

实验原理或流程图

Servlet是运行在服务器端的Java程序,它主要是为了扩展服务器的功能。编写和运行Servlet一般要经过4个步骤:(1)编辑源文件,它是继承HttpServlet的Java类;(2)编译源文件;(3)在服务器中部署该Servlet,即将类文件存放到服务器的适当目录中,并修改web.xml部署描述文件;(4)使用浏览器访问该Servlet程序。
Servlet程序的生命周期包括:加载程序、初始化、服务、销毁、卸载五个阶段。Servlet程序的生命周期中最为重要的就是service()方法,doGet()和doPost()是专门负责处理Http请求的。
Servlet与JSP的联系与区别:JSP是一种服务器端的动态页面技术,它的实质也是Servlet。它的编写较Servlet容易。二者的主要区别是:Servlet通常是实现业务逻辑,而JSP通常实现表示逻辑。
Servlet本身存在HttpServletRequest和HttpServletResponse对象的声明,可以使用Servlet接收用户提交的内容。
可以通过表单或超链接从一个JSP或者是一个HTML页面跳转进Servlet,也可以从Servlet跳转到其他的Servlet、JSP或其他页面,采用跳转形式有两种:(1)使用HttpServletResponse接口的sendRedirect()方法实现的客户端跳转;(2)使用RequestDispatcher接口的forward()方法实现的服务器端跳转。

实验过程

一个简单的servlet

Servlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        writer.write("Welcome to China!<br>热情好客的中国欢迎您!<br><br>当前时间:" + new Date());
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>index</title>
</head>
<body>
<a href="HelloServlet">xianshj</a>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果展示

在这里插入图片描述

使用servlet处理表单请求

servlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/input")
public class InputServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        writer.write("<h1>用户名:" + request.getParameter("name") + "<br>密 码:" + request.getParameter("password") + "<h1>");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

结果展示

在这里插入图片描述
在这里插入图片描述

在Servlet中获取应用程序配置参数

servlet

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

public class InitParamServlet extends HttpServlet {

    String nuc_url = "";
    @Override
    public void init(ServletConfig config) throws ServletException {
        nuc_url = config.getInitParameter("nuc_url");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        writer.write(nuc_url);
    }
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

使用Servlet处理用户登录请求

Servlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String myName = "luyunchi";
        String myPassword = "123123";
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        if (name.equals(myName) && password.equals(myPassword)) {
            request.setAttribute("name", name);
            request.getRequestDispatcher("/login_success.jsp").forward(request,response);
        } else {
            request.getRequestDispatcher("/login_failure.jsp").forward(request,response);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

登录表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
</head>
<body>
  <center>
    <h1>用户登录</h1>
  </center>
  <hr><br>
  <form action="${pageContext.request.contextPath}/login" method="get">
    <table align="center" border="0">
      <tr>
        <td align="right">用户名:</td>
        <td><input type="text" name="name"></td>
      </tr>
      <tr>
        <td align="right">密 码:</td>
        <td><input type="password" name="password"></td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value="提交">&nbsp;
          <input type="reset" value="重置">
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

登陆成功页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录成功页面</title>
</head>
<body>
    <center>
        <h1>恭喜,您登录成功!</h1>
        <br><br>
        <h1>欢迎<%=request.getAttribute("name")%>光临!</h1>
    </center>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

登录失败页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录失败页面</title>
</head>
<body>
  <center>
    <h1>用户ID或密码错误!请重新<a href="${pageContext.request.contextPath}/login_6_4.jsp">登录</a> </h1>
  </center>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果展示在这里插入图片描述

在这里插入图片描述

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>
    <servlet>
        <servlet-name>ServletDemo</servlet-name>
        <servlet-class>demoSeverlet.HelloServlet</servlet-class>

    </servlet>

    
    <servlet-mapping>
        <servlet-name>ServletDemo</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>demoSeverlet.InputServlet</servlet-class>

    </servlet>


    <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/InputServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>ServletDemo2</servlet-name>
        <servlet-class>demoSeverlet.LoginServlet</servlet-class>

    </servlet>


    <servlet-mapping>
        <servlet-name>ServletDemo2</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>ServletDemo3</servlet-name>
        <servlet-class>demoSeverlet.InitParamServlet</servlet-class>

    </servlet>


    <servlet-mapping>
        <servlet-name>ServletDemo3</servlet-name>
        <url-pattern>/InitParamServlet</url-pattern>
    </servlet-mapping>
</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

总结

本文是对javaweb实验中Servlet应用开发的总结,主要介绍了Servlet的概念、功能、生命周期和编程步骤。Servlet是一种运行在服务器端的Java程序,它可以接收和响应客户端的请求,实现动态的Web内容生成。Servlet的功能包括:处理表单数据、管理会话状态、与数据库交互、实现过滤器和监听器等。Servlet的生命周期由容器管理,一般分为三个阶段:初始化、服务和销毁。Servlet的编程步骤主要有:创建Servlet类,实现init、service和destroy方法;配置web.xml文件,注册Servlet和映射URL;部署和运行Servlet应用,测试其功能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/462402
推荐阅读
相关标签
  

闽ICP备14008679号