Java 使用httpsession进行会话管理
在servlet程序中管理会话面临的问题。这是我的servlet代码Java 使用httpsession进行会话管理,java,servlets,Java,Servlets,在servlet程序中管理会话面临的问题。这是我的servlet代码 //`SessionUsingHttpSession .java package suprio.servlets.examples; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
//`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");
}
}
}
这是视图部分
// 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>
//使用httpsession.html
在此处插入标题
输入名称:
密码:
当我试图通过apache tomcat服务器运行它时,我的web浏览器(mozila、chrome、IE)显示以下消息:
如果我保存并打开它,它会将“hello null”作为输出。现在我的问题是,为什么它显示这样的信息,因为我只是想把这一页转发到另一页
提前谢谢。您的内容类型显示为反向,您的内容类型为
html/text
,而不是text/html
此外,在编写之后刷新/关闭流也是一种很好的习惯
out.print("Hello"+user);
out.flush();
out.close();
两个servlet中的内容类型都错误。它应该是
text/html
此外,您使用的是
SessionSingHttpSession
servlet,仅用于重定向,因此根本不需要指定内容类型。谢谢Kostyan先生的评论,但我认为当我们使用任何输入/输出流时,应该在此类程序中使用flush()和close()这些方法,我是说在文件处理方面。我已经更改了程序,但web浏览器的行为仍然相同。@Kostyan但它仍然不工作,我已经更改了程序@kaysush
out.print("Hello"+user);
out.flush();
out.close();