servlet没法获得数据

servlet没法获得数据

regist.jsp之前写的是post然后,在servlet这里获得不到信息,打印用户列表都是Null,然后我吧post改成get就可以获得数据了,但是老师怎么就可以直接得到前台穿过来的数据呢?第一个有用户数据的是之前测试get的时候得到的,后面null的是post

http://img1.sycdn.imooc.com//climg/5dc3a0930946500e15650106.jpg


package com.imooc.web.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.imooc.domain.User;
import com.imooc.service.UserService;
import com.imooc.service.impl.UserServiceImpl;

/**
 * Servlet implementation class RegistServlet
 */
@WebServlet("/RegistServlet")
public class RegistServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//接受数据
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		//封装数据
		User user=new User();
		user.setUsername(username);
		user.setPassword(password);
		//处理数据		
		UserService userService = new UserServiceImpl();
		List<User> userList=(List<User>)getServletContext().getAttribute("userList");
		userService.regist(userList, user);
		System.out.println(userList);
		//显示处理结果
	}

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

}
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
	<title>用户注册</title>
	<link href="style/common.css" type="text/css" rel="stylesheet">
  <link href="style/add.css" type="text/css" rel="stylesheet">
  <link rel="stylesheet" href="style/login.css">
	<script type="text/javascript">
		function validate_form(){
			// 获得用户名的值
			var username = document.getElementById("username").value;
			if(username == null || username==""){
				alert("用户名不能为空");
				return false;
			}
			// 获得密码的值
			var password = document.getElementById("password").value;
			if(password == null || password==""){
				alert("密码不能为空");
				return false;
			}
			// 获得确认密码的值
			var repassword = document.getElementById("repassword").value;
			if(repassword != password){
				alert("两次密码输入不一致");
				return false;
			}
			return true;
		}
	</script>
</head>
<body>
<%@ include file="header.jsp" %>

<div class="content">
  <div class="center">
    <div class="center-login">
      <div class="login-banner">
       <a href="#"><img src="image/login_banner.png" alt=""></a>
     </div>
     <div class="user-login">
       <div class="user-box">
         <div class="user-title">
           <p>用户注册</p>
         </div>
         <form id="regForm" enctype="multipart/form-data" onsubmit="return validate_form()" class="login-table" action="${pageContext.request.contextPath }/RegistServlet" method="post">
          <div class="login-left">
            <label class="username">用户名&nbsp&nbsp&nbsp&nbsp</label>
            <input type="text" id="username" class="yhmiput" name="username">
          </div>
          <div class="login-left">
            <label class="username">密码&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</label>
            <input type="password" id="password" class="yhmiput" name="password">
          </div>
		  <div class="login-left">
            <label class="username">确认密码</label>
            <input type="password" id="repassword" class="yhmiput" name="repassword">
          </div>
		  <div class="login-left">
            <label class="username">上传头像</label>
            <input type="file" class="yhmiput" name="file">
          </div>
		  <%-- <div class="login-left">
            <label class="username">验证码&nbsp&nbsp&nbsp&nbsp</label>
            <input type="text" class="codeiput" name="checkCode">
			<img id="codeImg" onclick="changeImg()" src="${pageContext.request.contextPath }/CheckImgServlet">
          </div> --%>
        
        <div class="login-btn"><button>注册</button></div>
        </form>
      </div>
    </div>
  </div>
</div>
</div>
<div class="footer">
 <p><span>M-GALLARY</span> ©2017 POWERED BY IMOOC.INC</p>
</div>

</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕酷酷 2019-11-07 18:42:08

同学你好,代码编写的不错,无法获取数据的原因是,在jsp中应该将enctype="multipart/form-data"删除,因为这里编写这句代码,表示指定传输数据为二进制类型,所以获取不到传来的值。

具体修改如下:

http://img1.sycdn.imooc.com//climg/5dc3f43709faf0ef08120215.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 那为什么doget就可以呢
    2019-11-07 21:56:53
  • 同学你好,因为get是从服务器上获取数据,post是向服务器传送数据,而这里时如果添加enctype="multipart/form-data"这句代码,则表示向服务器传输二进制类型的数据,所以post方式无法获取到,而get是从服务器上获取数据,所以是可以的,如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-11-08 09:54:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师