servlet接收不到JSP传来的数据servlet接收不到JSP传来的数据

本文探讨了一个常见的编程问题,即在JSP页面中输入的数据无法被Servlet正确接收。通过分析JSP和Servlet的代码,指出问题在于提交按钮的类型设置。将`<input type="button">`改为`<input type="submit">`,或者调整onclick事件来携带参数,可以解决数据无法传递的问题。解答还提供了其他建议,如明确form表单的action属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

就是一个很简单的程序 JSP输入用户名,在servlet接受后显示出来,但是每次显示的都是null
JSP页面:
<%@ page language=" java" import=" java.util.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<html>
  <head>
  <base href="<%=basePath%>">
    
  </head>
   
  <body>
  <form name="form" method="post" action="/aa">
  <% request.setCharacterEncoding("UTF-8"); %>
    
  账号:<input type="text" name="AdmName" ><br>
  密码:<input type="password" name="AdmPassword" ><br><br>
  <input type="button" name="sure" value="确定" οnclick="window.location.href='/servlettset/aa'">
  <input type="reset" name="concel" value="取消" ><br>
  </body>
</html>
servlet代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class aa extends HttpServlet {
public aa() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String AdmName = request.getParameter("AdmName");
String AdmPassword = request.getParameter("AdmPassword");
out.println(AdmName);
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.flush();
out.close();
}
public void init() throws ServletException {
}
}
------回答---------

  <input type="button" name="sure" value="确定" οnclick="window.location.href='/servlettset/aa'">
改成
  <input type="submit" name="sure" value="确定" >
就可以了
------其他回答(20分)---------
引用 3 楼 liuyiwu 的回复:
<input type="button" name="sure" value="确定" οnclick="window.location.href='/servlettset/aa'">
这样写当然接收不到。这个button只触发了onclick,没有提交表单。/servlettset/aa这个url后面又没有跟请求参数。
<input type="button" name="sure" value="确定" οnclick="window.location.href='/servlettset/aa'">
你这样是连接到servlet了 对 但是这样是传不过去任何属性的
要参数 要么你在window.location.href='/servlettset/aa 后边以?形式带着
要么把这个改成
<input type="submit" name="sure" value="确定" />
然后为了确保servlet能执行
把form表单的action属性改为/servlettset/aa



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值