0
点赞
收藏
分享

微信扫一扫

Java Web小课程3——写servlet

googlefrank 2022-04-03 阅读 96
javaidea

写servlet
1.在java中创建servlet
在这里插入图片描述
2.起名,起包名
在这里插入图片描述
3.新建的servlet有问题
1)没有servlet类
解决:在pom.xml中加入servlet映射
在这里插入图片描述
在pom.xml中

<!--Servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

2)不是基于注解版本的servlet
解决:找到web.xml文件
把基于配置文件的配置注释掉
在UserServlet.java中加入对注解的配置@WebServlet(“/user”):/user代表UserServlet

在web.xml中

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    //<!--<servlet>-->
      //  <!--<servlet-name>UserServlet</servlet-name>-->
       // <!--<servlet-class>com.dlxy.servlet.UserServlet</servlet-class>-->
   // <!--</servlet>-->
</web-app>

在UserServlet.java中

package com.dlxy.servlet;

import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/user")

public class UserServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
    }
}

4.UserServlet.java中
对于doPost,doGet把代码写在一个方法(doGet)里然后另一个方法(doPost)调用这个方法
登录:登录页面login.jsp,在页面中能输入用户名,密码,登录按钮。点完按钮将输入的用户名和密码提交给服务器Servlet(Tomact)。
服务器需要做的(登录流程):
1)读取登录页面传入的用户名和密码
2)调用实现类方法根据用户名和密码得到用户
3)如果能够拿到数据(用户信息)则表示登陆成功,跳转到成功页面
4)如果拿不到数据(用户信息),则表示登录失败,提示用户登录失败,并重新回到登录界面
第一步:在webapp中新建jsp叫login
在这里插入图片描述
在这里插入图片描述
第二步:在login.jsp中把form表单写好
form表单:可以完成数据的提交功能
action:请求的路径from表单提交后提交给servlet,接收form表单的servlet是UserServlet,我们用/user代表UserServlet。**
注:直接写/后面的路径就行
method指的是提交方法get/post(一般情况下选post)
因为表单需要提交所以必须给表单name属性
required属性表示必填项,因为我们通过用户名和密码查询:要求用户名和密码必须填写

在login.jsp中

<%--
  Created by IntelliJ IDEA.
  User: PC
  Date: 2022/4/1
  Time: 10:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
//解决第三步一个Servlet如何处理多个请求   ?flag=login
  <form action="user?flag=login" method="post">
    用户名:<input type="text" name="username" required><br/>
    密码:  <input type="password" name="password" required><br/>
    <input type="submit" value="提交">
  </form>

</body>
</html>

运行:
1)添加Tomact服务器

在这里插入图片描述
在这里插入图片描述
起名:Tomcat8.5
在这里插入图片描述
Tomcat就添加好了
2)右键运行
在这里插入图片描述
结果图:
在这里插入图片描述
from表单提交后提交给servlet,接收form表单的servlet是UserServlet
第三步:编写Servlet
在UserServlet.java中

package com.dlxy.servlet;

import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/user")

public class UserServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
         doGet(request,response);
    }


   /*
   * 一个Servlet如何处理多个请求
   * 解决方式:在请求路径后面加入请求参数(在login.jsp中user后加?flag=login,请求参数起名:flag随便起不要用中文,不要用数字,login是参数值)
   * user?flag=login  - -用户登录
   * user?flag=regist - - 用户注册
   * */
   //业务逻辑处理
    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {


        //1.先获取flag的参数值,表单传过来的flag,对于服务器而言属于请求,Parameter是参数的意思,getParameter("flag");根据参数名是字符串(flag)获取参数值login,返回值是字符串
        //如果参数名不存在时返回值为null
        
        String flag =request.getParameter("flag");
        //登录
        if ("login".equals(flag)){

        }
        //注册
        if ("regist".equals(flag)){

        }
    }
}

举报

相关推荐

0 条评论