Java如何从servlet读取请求参数?
在大多数情况下,使用Javaservlet创建应用程序时,我们将使用request和response对象。从请求对象中,我们可以通过HTTPGET或POST方法读取用户浏览器提交的参数。
基本上,您需要知道的是,当您尝试从servlet内部获取传递的参数时,可以调用,request.getParameter(paramName)其中paramName是您想从servlet请求对象中读取的参数的名称。
在此示例中,我将向您展示如何在非常简单的登录Servlet中读取参数以处理用户操作。在此示例中,我们将创建一个登录表单,即一个JSP页面,该页面接受用户输入的用户名和密码。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Login Page</title> </head> <body> <form id="loginForm" action="/java-web-examples/login" method="post"> <label>Username</label> <input type="text" name="username" /> <label>Password</label> <input type="password" name="password" /> <input type="submit" value="Login" /> </form> </body> </html>
在此表格中,您必须输入用户名和密码的框。您还具有提交按钮,用于执行登录过程。现在我们有了表单,让我们创建登录servlet。
package org.nhooo.example.servlet; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class LoginServlet extends HttpServlet implements Servlet { protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doLogin(req, res); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doLogin(req, res); } protected void doLogin(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //在这里,我们从servletreq中读取参数 String username = req.getParameter("username"); String password = req.getParameter("password"); PrintWriter pw = res.getWriter(); if (username != null && username.equals("administrator") && password != null && password.equals("secret")) { //接受身份验证! pw.println("Success!"); } else { //身份验证被拒绝! pw.println("Denied!"); } pw.close(); } }
为了使我们的servlet工作,您必须在该web.xml文件WEB-INF夹下的文件中注册servlet。您可以在下面找到配置。
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>java-web-examples</display-name> <servlet> <description> </description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>org.nhooo.example.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app>
现在您已经拥有了一切,可以将应用程序部署在servlet容器上,例如ApacheTomcat。通过以下地址访问登录页面:
http://localhost:8080/java-web-examples/login.jsp
您还可以直接从以下URL访问servlet:
http://localhost:8080/java-web-examples/login
要传递用户名和密码信息,您可以附加如下参数:
http://localhost:8080/java-web-examples/login?username=administrator&password=secret
这将调用servlet并验证您的登录信息。