如何将值作为请求对象中的参数获取

时间:2016-03-28 16:44:35

标签: forms jsp request

我有一个文本框,其值要设置为我从用户请求中获取的值作为参数。

例如,请求是: 本地主机:8084 /测验/ login.jsp的UNAME =马尼什 我想展示" manish"在表单的文本框中。

我该怎么做? 这是我的login.jsp

的完整代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
<%
    String error=(String)request.getParameter("error");
    String uname=request.getParameter("uname");
    if(error!=null)
    {
        if(error.equalsIgnoreCase("no_username_password"))
            out.println("Username and password can't be empty");
        if(error.equalsIgnoreCase("no_username"))
            out.println("Username is required");
        if(error.equalsIgnoreCase("no_password"))
            out.println("Password is required");
    }
%>

<form method="post"  action="LoginServlet">
UserName: <input name="Username"><br>
Password: <input name="password"><br>
<input type="submit">
</form>
</body>
</html>

这是我的servlet的代码

package com.util.Servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
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 javax.servlet.http.HttpSession;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet(description = "Will take username and password from login.html and validate user", urlPatterns = { "/LoginServlet" })
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String username=request.getParameter("Username");
        String password=request.getParameter("password");
        //PrintWriter out=response.getWriter();
        //System.out.println(request.getAttribute("Error"));
        //HttpSession session=request.getSession();
        if((username=="" || username==null)&&(password=="" || password==null) )
        {
            response.sendRedirect("Login.jsp?error=no_username_password");
        }
        else if((username=="" || username==null)&&(password!=""||password!=null))
        {
            response.sendRedirect("Login.jsp?error=no_username");
        }
        else if((username!="" || username!=null)&&(password==""||password==null))
        {
            String url="Login.jsp?error=no_password&uname="+username;
            response.sendRedirect(url);
        }
    }

}

2 个答案:

答案 0 :(得分:1)

我不是jsp开发者,但我认为你必须在HTML中做这样的事情:

UserName: <input name="Username" value="<%= request.getParameter("uname") %>"><br>

答案 1 :(得分:0)

您可以使用<c:out> taglib获取请求参数值并将其打印出来。 ${param}是请求参数对象,uname是您的参数名称。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<input name="Username" value="<c:out value="${param.uname}"/>">

按照您目前在JSP文件中的内容,您可以这样做:

<input name="Username" value="<%= uname %>">