永发信息网

关于jsp的一点小问题

答案:3  悬赏:30  手机版
解决时间 2021-06-07 09:29
  • 提问者网友:斑駁影
  • 2021-06-06 22:09

一:HttpSeesion session=request.getSession(true)和request.getSession(false)的区别,什么时候用true,什么时候用false?

二:判断两个String字符串,用“==”还是用“equals()”,两者有什么区别?

三:javaw.exe是干什么用的,为什么我一关掉javaw.exe,Myeclipse就自动关掉了。(我有个程序调不出来,别人让我关掉tommcat和Myeclipse,关掉javaw.exe,但是关了之后,还是调不出来)

四:jsp页面

<html>

<head><tilte></title></head>

<body>

<from method="get" action="servlet/TestServlet">

<table>

<tr>

<td><input type="text" name="pass"/></td>

<td><input type="sumbit" name="ok" value="ok"/></td>

</tr>

</table>

</form>

</body>

</html>

TestServlet内容:




import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegisterServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");

PrintWriter out=response.getWriter();

String pass=(String)request.getParameter("pass");

//测试

System.out.println("系统输出");

out.println("hahaha!!!");

out.println(pass);
}
public void doPost(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException { doGet(request,response);}
}

问题:我在jsp页面里输入“123”,为什么输出的是“hahaha!!! null”

而不是“hahaha!!! 123”?

最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-06-06 23:14

1.
HttpServletRequest.getSession(ture) 等同于 HttpServletRequest.getSession()
HttpServletRequest.getSession(false) 等同于 如果当前Session没有就为null;
基本上没有看什么情况用哪个,只要 HttpServletRequest.getSession()级ok了。不用考虑其它的。
2.
比较两个String字符串,是用equals。用“==”是错误的。
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。


==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;
3.
javaw.exe就是你MyEcplise运行程序,你在进程里面把javaw.exe关掉级相当于你把MyEcplise关掉
4.你上面的代码没错。在控制台输出的是“系统输出”,在页面上输出的是“hahaha!!! 123 ”。
但是你给的代码上有点小错误,表单是<form>而不是<from>,还有你的提交按钮的类型type="submit",而不是type="sumbit"
其它的是没什么错误的。
如果你的机器上运行的还是null,那么建议你重新建个web工程,再蒋你的文件全部烤到这个工程里面,在执行,应该就不会有错了。
而你出现的这种情况,可能是你的servlet/TestServlet里面编译的class文件没有更新导致的,这是MyEcplise的问题,而不是你的问题。


希望对你有帮助!


全部回答
  • 1楼网友:旧脸谱
  • 2021-06-06 23:44

首先看这一句:String pass=(String)request.getParameter("pass");

强制转换有必要吗?它默认的返回就是字符串.

String 是一个特殊的类型,如果你这样写String password = "admin";你要比较是都相同的字符,就可以用==,但是如果你这样写String password = new String("admin");就不可以了。

HttpSession 对象是一个范围域比较大的对象,如果你要用它就要设置为true.

最后javaw就是你安装的JVM,你想myecliipse和eclipse的运行都依靠它,如果你没有安装JDK,eclipse或者是myeclipse就不能运行,所以你关闭了它就好想把房子的地基给挖掉了。房子自然会倒塌了。

  • 2楼网友:千夜
  • 2021-06-06 23:22

1 是否过期

2 == 比较内存 equals 比较内容

3 可以直接运行jar文件

4 除了你的servlet名还真没找到错误

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯