servlet获取参数

本文介绍了如何在Servlet中获取HTTP请求的参数,包括通过`doPost`和`doGet`方法使用`request.getParameter()`获取POST和GET请求的数据。讨论了在不同场景下可能出现的错误,如404错误、405错误、空指针异常以及NumberFormatException,并提供了相应的解决建议。还提到了Servlet的配置方式,包括传统的web.xml配置和注解配置。

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

创建Servlet的方法有两种:

       Servlet要继承HttpServlet,因为jar不在jdk的里面,而是在Tomcat里面的servlet-api.jar。

        所以想要使用servlet的接口或继承必须把Tomcat依赖添加进去。

     File ---> project structure... ---> Modules ---> + library....

         1. 通过创建java类,实现Servlet接口或继承于Servlet接口的实现类(HttpServlet)来实现。 

         2. 通过集成开发工具进行创建。

  Servlet配置:

             目的是为了将创建的Servlet注册到Servlet容器中,

               而在3.0前版本只能web.xml文件中配置Servlet,3.0版本后提供了注解配置。

            1. web.xml文件中配置Servlet

<!--注册Servlet-->
<servlet>

<!--Servlet名称-->
        <servlet-name>AddServlet</servlet-name>

<!--类的完整类名(包路径)-->
        <servlet-class>com.atguigu.servlets.AddServlet</servlet-class>

    </servlet>

<!--映射-->
    <servlet-mapping>

<!--Servlet名称-->
        <servlet-name>AddServlet</servlet-name>

<!--访问url地址-->
        <url-pattern>/add</url-pattern>

    </servlet-mapping>
    <!--
    1. 用户发请求,action=add
    2. 项目中,web.xml中找到url-pattern = /add   -> 第12行
    3. 找第11行的servlet-name = AddServlet
    4. 找和servlet-mapping中servlet-name一致的servlet , 找到第7行
    5. 找第8行的servlet-class -> com.atguigu.servlets.AddServlet
    6. 用户发送的是post请求(method=post) , 因此 tomcat会执行AddServlet中的doPost方法
    -->

2.Servlet注解配置:

@WebServlet("/servlet类名")

dopost()方法或doget能帮我们响应post或get请求

而用户发送的是post默认的请求(method=post),tomcat会执行Servlet中的doPost方法。

而用户发送的是get默认的请求(method=get),tomcat会执行Servlet中的doGet方法。

下面代码:获取参数

通过form表单填写信息,然后通过action跳转提交给Servlet,Servlet的doPost方法里面的request.getParameter()获取参数,然后打印到控制台。


<body>
<form action="addServlet"  method="post">
    名称:<input type="text" name="fname"/><br/>
    价格:<input type="text" name="price"/><br/>
    库存:<input type="text" name="fcount"/><br/>
    备注:<input type="text" name="remark"/><br/>
    <input type="submit" value="添加" />
</form>
</body>
@WebServlet("/addServlet")
public class addServlet extends HttpServlet {
    public addServlet(){super();}
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取参数
        String fname = request.getParameter("fname");
        String priceStr = request.getParameter("price");
//Http传递的参数都是字符串,所以有的时候需要强转
        Integer price = Integer.parseInt(priceStr);
        String fcountStr = request.getParameter("fcount");
        Integer fcount = Integer.parseInt(fcountStr);
        String remark = request.getParameter("remark");
        System.out.println("fname"+fname);
        System.out.println("price"+price);
        System.out.println("fcount"+fcount);
        System.out.println("remark"+remark);
     }
}

小结:

 1. 在部署的时候,修改application Context。然后再回到server选项卡,检查URL的值
      URL的值指的是tomcat启动完成后自动打开你指定的浏览器,然后默认访问的网址。
     启动后,报错404.404意味着找不到指定的资源。
   如果我们的网址是:http://localhost:8080/pro01/ , 那么表明我们访问的是index.html.
   我们可以通过<welcome-file-list>标签进行设置欢迎页(在tomcat的web.xml中设置,或者在自己项目的web.xml中设置)
 2. 405问题。当前请求的方法不支持。比如,我们表单method=post , 那么Servlet必须对应doPost。否则报405错误。
3. 空指针或者是NumberFormatException 。因为有价格和库存。如果价格取不到,结果你想对null进行Integer.parseInt()就会报错。错误的原因大部分是因为 name="price"此处写错了,结果在Servlet端还是使用request.getParameter("price")去获取。
4. <url-pattern>中以斜杠开头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值