我的第一个servlet

首先新建项目(以Idea 2022.2.2为例):

编辑配置,使用Tomcat服务(本地):(工件一定要配置好)

src文件夹下创建Servlet类:

@WebServlet(name = "Servlet", value = "/Servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter  out = response.getWriter();
        out.print("hello servlet");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       this.doGet(request,response);
    }
}

效果演示:

创建servlet类接收表单信息,输出对应的参数以及value值,构成表格。

代码示例:
 

public class ShowParameterServlet extends HttpServlet {
    @Serial
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        // 输出表单
        out.println("<html><head><title>Personal Information</title></head>");
        out.println("<body><h1>Personal Information</h1>");
        out.println("<form method='get'>");
        out.println("姓名: <input type='text' name='name'><br>");
        out.println("性别: <input type='text' name='gender'><br>");
        out.println("爱好: <input type='checkbox' name='hobbies' value='唱歌'> 唱歌" +
                "     <input type='checkbox' name='hobbies' value='跳舞'> 跳舞" +
                "     <input type='checkbox' name='hobbies' value='Rap'> Rap" +
                "     <input type='checkbox' name='hobbies' value='打篮球'> 打篮球<br>");
        // 确保在表单提交时,如果没有任何一个复选框被选中,会以空字符串提交该参数
        out.println("<input type='hidden' name='hobbies' value=''>");

        out.println("年龄: <input type='text' name='age'><br>");
        out.println("户籍所在省份: ");
        out.println("<select name='province'>");
        out.println("<option value=''>--请选择--</option>");
        out.println("<option value='广东省'>广东省</option>");
        out.println("<option value='福建省'>福建省</option>");
        out.println("<option value='湖南省'>湖南省</option>");
        out.println("</select><br>");
        out.println("<input type='submit' value='Submit'>");
        out.println("</form>");
        out.println("<hr>");

        // 输出参数表格
        Enumeration<String> parameterNames = request.getParameterNames();
        out.println("<h2>Information table</h2>");
        out.println("<table border='1'><tr><th>Name</th><th>Value</th></tr>");

        while (parameterNames.hasMoreElements()) {
            String paramName = parameterNames.nextElement();
            String[] paramValues = request.getParameterValues(paramName);
            out.print("<tr><td>" + paramName + "</td><td>");
            if (paramValues.length == 1 || paramValues[0].isEmpty()) {
                if (!paramValues[0].isEmpty()) {
                    out.print(paramValues[0]);
                } else {
                    out.print("<i>No Value</i>");
                }
            } else if (paramValues.length > 1) {
                out.print("<ul>");
                for (String value : paramValues) {
                    if (!value.isEmpty()) { // 判断值是否为空字符串
                        out.print("<li>" + value + "</li>");
                    }
                }
                out.print("</ul>");
            }

            out.println("</td></tr>");
        }

        out.println("</table>");
        out.println("</body></html>");
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

需要在web.xml配置相关映射关系

<web-app >
    <servlet>
        <servlet-name>ShowParameterServlet</servlet-name>
        <servlet-class>ShowParameterServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ShowParameterServlet</servlet-name>
        <url-pattern>/showParams</url-pattern>
    </servlet-mapping>
</web-app>

实验内容:编写JSP程序,实现用户提交登录表单给Servlet,由Servlet 查询数据库(模拟查询,不用真的连接数据库查询),对用户是否存在进行验证。

实验步骤:

(1)编写一个验证用户的Servlet(LoginServlet. java),再编写登录页面程序login.html、登录成功页面welcome.jsp和登录失败页面loginfail.jsp。

(2)运行程序查看效果。

LoginServlet.java:

     

public class LoginServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 模拟查询数据库
        if ("admin".equals(username) && "123456".equals(password)) {
            HttpSession session = request.getSession();
            session.setAttribute("loginStatus", "success");
            RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
            rd.forward(request, response);
        } else {
            HttpSession session = request.getSession();
            session.setAttribute("loginStatus", "fail");
            RequestDispatcher rd = request.getRequestDispatcher("loginfail.jsp");
            rd.forward(request, response);
        }
    }
}

Login.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="http://localhost:8080/jspDemo__war_exploded/LoginServlet" method="Get">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username" required><br>

  <label for="password">Password:</label>
  <input type="password" id="password" name="password" required><br>

  <input type="submit" value="Login">
</form>
</body>
</html>

welcome.jsp

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="http://localhost:8080/jspDemo__war_exploded/LoginServlet" method="Get">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username" required><br>

  <label for="password">Password:</label>
  <input type="password" id="password" name="password" required><br>

  <input type="submit" value="Login">
</form>
</body>
</html>

loginfail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<body>
<h1>用户名或密码错误,请重新登录!</h1>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值