实验十 Servlet(一)

实验十 Servlet(一)

【实验目的】

1.了解Servlet运行原理

2.掌握Servlet实现方式

【实验内容】

1、参考课堂例子,客户端通过login.jsp发出登录请求,请求提交到loginServlet处理。如果用户名和密码相同则视为登录成功,跳转到loginSuccess.jsp页面,显示"欢迎你"+用户名;否则跳转到loginFail.jsp页面,显示"登录失败",通过超链接返回login.jsp。

login.jsp

java 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆页面</title>
</head>
<body>
<form action="loginServlet" method="post">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required><br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required>
    <input type="submit" value="登陆">
</form>
</body>
</html>

loginServlet

复制代码
package servlet;

import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

import java.io.IOException;

//Servlet映射
@WebServlet(name = "loginServlet" )
public class loginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
        // 获取输入的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 如果用户名和密码相同则登陆成功
        if(username.equals(password)){
            //将用户名保存到会话中
            HttpSession session = request.getSession();
            session.setAttribute("username",username);

            //跳转到登陆成功页面
            response.sendRedirect("loginSuccess.jsp");
        } else {
            //登录失败,则跳转到登陆失败页面
            response.sendRedirect("loginFail.jsp");
        }
    }
}

loginSuccess.jsp

java 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆成功</title>
</head>
<body>
<h1>欢迎您!${sessionScope.username}</h1>
</body>
</html>

loginFail.jsp

html 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>登陆失败</h1>
    <a href="login.jsp">返回登陆页面</a>
</body>
</html>

2、参考课程网站"在Servlet中读取参数"内容,使用ServletConfig检索Servlet的初始化参数,请补充填写以下①-⑥空,并运行ConfigDemoServlet程序,将运行结果截图。

【步骤1】编写ConfigDemoServlet程序,内容如下:

xml 复制代码
package Servlet;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ConfigDemoServlet extends HttpServlet{
String servletName=null;
ServletConfig config=null;
String email=null;
String telephone=null;

public void init() {
config =_____①________;
servletName = config.getServletName();
email = ________②________________;
telephone =___________ ③_______________;
}

public void service(HttpServletRequest request, HttpServletResponse response)
             throws ServletException,IOException{  
  response.setContentType("text/html;charset=gb2312");
  PrintWriter out = response.getWriter();
  out.println("<html><body>");
    out.println("Servlet名称:"+servletName+"<br>");
    out.println("Email地址:"+email+"<br>");	
    out.println("电话:"+telephone);
    out.println("</body></html>");
}
}

【步骤2】修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义

xml 复制代码
<servlet>
    <servlet-name>        ④         </servlet-name>
    <servlet-class>         ⑤          </servlet-class>
    <init-param>
      <param-name>email</param-name>
      <param-value>hacker@163.com</param-value>
    </init-param>
    <init-param>
      <param-name>telephone</param-name>
      <param-value>8899123</param-value>
    </init-param>
    
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
     <servlet-name>      ④         </servlet-name>
     <url-pattern>        ⑥        </url-pattern>
  </servlet-mapping>

【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet并截图显示结果:

http://localhost:8080/bookstore/configDemo

xml 复制代码
ConfigDemoServlet
package servlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ConfigDemoServlet extends HttpServlet {
    String servletName=null;
    ServletConfig config=null;
    String email=null;
    String telephone=null;

    public void init() {
        config = getServletConfig();
        servletName = config.getServletName();
        email = config.getInitParameter("email");
        telephone =config.getInitParameter("telephone");
    }

    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException,IOException{
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("Servlet名称:"+servletName+"<br>");
        out.println("Email地址:"+email+"<br>");
        out.println("电话:"+telephone);
        out.println("</body></html>");
    }
}

web.xml

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">

    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>servlet.loginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>ConfigDemoServlet</servlet-name>
        <servlet-class>servlet.ConfigDemoServlet</servlet-class>
        <init-param>
            <param-name>email</param-name>
            <param-value>hacker@163.com</param-value>
        </init-param>
        <init-param>
            <param-name>telephone</param-name>
            <param-value>8899123</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ConfigDemoServlet</servlet-name>
        <url-pattern>/bookstore/configDemo</url-pattern>
    </servlet-mapping>
</web-app>

结果:

相关推荐
随心............20 小时前
yarn面试题
大数据·hive·spark
Aurora_eye1 天前
记录之Ubuntu22.4虚拟机及hadoop为分布式安装
大数据·hadoop·分布式
夫唯不争,故无尤也1 天前
Tomcat 启动后只显示 index.jsp,没有进入你的 Servlet 逻辑
java·servlet·tomcat
随心............2 天前
在开发过程中遇到问题如何解决,以及两个经典问题
hive·hadoop·spark
攻城狮CSU2 天前
C# 数据加载专题 之泛型序列化
java·servlet·c#
yumgpkpm2 天前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境 查询2100w行 hive 查询策略
数据库·数据仓库·hive·hadoop·flink·mapreduce·big data
久曲健的测试窝3 天前
Jenkins Share Library教程 —— 开发入门
运维·servlet·jenkins
K_i1343 天前
Hadoop 集群自动化运维实战
运维·hadoop·自动化
Q26433650233 天前
【有源码】基于Python与Spark的火锅店数据可视化分析系统-基于机器学习的火锅店综合竞争力评估与可视化分析-基于用户画像聚类的火锅店市场细分与可视化研究
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
lied16636348063 天前
List导出到Excel文件
servlet·list·excel