实验十 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>

结果:

相关推荐
编程指南针2 小时前
基于Hadoop实现气象分析大屏可视化项目【源码+LW+PPT+解析】
大数据·hadoop·分布式·气象分析
赛博末影猫6 小时前
Maven(Ⅱ):依赖范围,依赖传递,依赖阻断,可选依赖
数据库·hive·maven
乙卯年QAQ7 小时前
【Hadoop】Hadoop的HDFS
大数据·hadoop·hdfs
STONE_KKK18 小时前
Hive重点面试题
数据仓库·hive·hadoop
想做富婆1 天前
Hive:日志,hql运行方式,Array,行列转换
数据仓库·hive·hadoop
字节全栈_kYu2 天前
Hadoop大数据应用:HDFS 集群节点缩容
大数据·hadoop·hdfs
想做富婆2 天前
Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)
数据仓库·hive·hadoop
一张假钞3 天前
Spark SQL读写Hive Table部署
hive·sql·spark