当前位置: 首页 > article >正文

实验十 Servlet(一)

实验十 Servlet(一)

【实验目的】
1.了解Servlet运行原理
2.掌握Servlet实现方式

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

login.jsp

<%@ 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

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

loginFail.jsp

<%@ 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程序,内容如下:

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定义和初始化参数定义

<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

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

结果:

在这里插入图片描述


http://www.kler.cn/a/530434.html

相关文章:

  • 如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?
  • Spring Boot 实例解析:配置文件
  • 星际智慧农业系统(SAS),智慧农业的未来篇章
  • 高清种子资源获取指南 | ✈️@seedlinkbot
  • 梯度提升用于高效的分类与回归
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.12 连续数组:为什么contiguous这么重要?
  • C# 操作符重载对象详解
  • DeepSeek的出现对全球GPT产业产生的冲击
  • 【JAVA篇】------ spring aop
  • 【C语言设计模式学习笔记1】面向接口编程/简单工厂模式/多态
  • MATLAB中open函数用法
  • 一文总览OpenAI o1相关的技术:从CoT、Quiet-STaR、Self-Correct、Self-play RL、MCTS等到类o1模型rStar-Math
  • 在GPIO控制器中,配置通用输入,读取IO口电平时,上拉和下拉起到什么作用
  • 想品客老师的第十天:类
  • DeepSeek技术深度解析:从不同技术角度的全面探讨
  • 软件工程概论试题三
  • MATLAB中savefig函数用法
  • python激活shizuku
  • 解决whisper 本地运行时GPU 利用率不高的问题
  • 学习日记-250202
  • 代码随想录刷题笔记
  • 信息学奥赛一本通 1422:【例题1】活动安排
  • Vue.js 的介绍与组件开发初步
  • CSS Display属性完全指南
  • Shell基础:中括号的使用
  • React基础知识回顾详解