简体   繁体   中英

using httpsession for session management

facing problem to manage session in servlet program. this is my servlet code.

//`SessionUsingHttpSession .java

package suprio.servlets.examples;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.catalina.Session;

/**
 * Servlet implementation class SessionUsingHttpSession
 */
public class SessionUsingHttpSession extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public SessionUsingHttpSession() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("<html/text");
    String name = request.getParameter("txtName4");
    String pass = request.getParameter("txtPassword4");
    if(pass.equals("12345"))
    {
        HttpSession session = request.getSession();
        session.setAttribute("user", name);
        //response.sendRedirect("SessionUsingHttpSessionRedirected");
        RequestDispatcher rd =       request.getRequestDispatcher("SessionUsingHttpSessionRedirected");
    }
}

}

and the following code is the redirected from SessionUsingHttpSession.java

//SessionUsingHttpSessionRedirected.java
package suprio.servlets.examples;

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

/**
 * Servlet implementation class SessionUsingHttpSessionRedirected
*/
public class SessionUsingHttpSessionRedirected extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public SessionUsingHttpSessionRedirected() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("html/text");
    PrintWriter out = response.getWriter();
    HttpSession session = request.getSession();
    String user = (String) request.getAttribute("user");
    out.print("Hello"+user);

}

}

and this is for view part

// UsingHttpSession.html

<!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>Insert title here</title>
</head>
<body>
<form method="get" action="SessionUsingHttpSession">
Enter Name:<input type="text" name="txtName4"/><br/>
Password: <input type="text" name="txtPassword4"/><br/>
<input type="Submit" value="Enter">
</form>
</body>
</html>

while i am trying to run it through apache tomcat server my web browsers(mozila,chrome,IE) showing this message: 在此处输入图片说明

if i save and open it it is giving "hello null" as output. Now my question is that why its showing such message as i am just trying to forward this page to another.

Thank you in advance.

Your content type appears reversed, you have it as html/text , instead of text/html .

Also it's a good habbit to flush/close stream after you write.

out.print("Hello"+user);
out.flush();
out.close();

The content type is wrong in both servlets. It should be text/html .

Moreover is you are using SessionUsingHttpSession servlet just for redirection then there is no need for specifying the content type at all.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM