Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用httpsession进行会话管理_Java_Servlets - Fatal编程技术网

Java 使用httpsession进行会话管理

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;

在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;
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();