网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > IT认证 > J2EE

Servlet/JSP相关问题解答

栏目: J2EE / 发布于: / 人气:9.93K

  1 什么是JSP?它和Servlet有什么区别?

Servlet/JSP相关问题解答

答:你可以将JSP当做一个可扩充的HTML来对待。

虽然在本质上JSP文件会被服务器自动翻译为相应的Servlet来执行。

可以说Servlet是面向Java程序员而JSP是面向HTML程序员的,除此之外两者功能完全等价。

  2 什么是Servlet?

答:一个Servlet是一个Java类。它处理Http(s)请求并作出响应,包括返回一个HTML页面或转交给其他URL处理。

Servlet必须运行在一个Web Container例如Tomcat中。

Servlet必须是Servlet的子类,

你可以继承doGet()或者doPost()方法,两者分别对应于Http(s)中的Get请求和Post请求。

  3 sendRedirect()和forward()有什么不同?

答:sendRedirect()是向浏览器发送一个redirect通知,浏览器重定向到新的URL。

而forward是在服务器端直接转到新的`URL,对于浏览器是透明的。

前者浏览器的地址栏显示的是新的URL,后者浏览器的地址栏显示的是Servlet的URL。

因而当目标URL会自动刷新时,两者会造成一些差别。

  4 我写了一个Servlet程序,怎么运行它?

答:开发J2EE程序有一个部署(deploy)的概念,实际上是开发——部署——运行的三部曲。

大多数服务器支持Hot deploy。你只需要在相应的Application目录(具体路径依赖于服务器)下面

建立一个符合WAR或EAR格式(参见16,17)的目录,启动服务器,就可以通过浏览器访问了。

特别的,你的Servlet的class文件应当放在/WEB-INF/classes目录中。

注意J2EE SDK不支持Hot deploy,你需要通过它的deploy tool来部署。

Tomcat只支持WAR格式。

  5 EAR和WAR有什么不同?

答:EAR是一个完整的J2EE应用程序,包括Web部分和EJB部分。

WAR只是其中的Web部分。

  6 EAR格式是怎样的?

答:一个EAR可以包含任意多个WAR或EJB JAR,并且包含一个META-INF的目录。

在/META-INF中包含了一个,其中描述了这个EAR包含哪些模块,以及安全性配置。

细节请看参考书。

  7 WAR格式是怎样的?

答:一个WAR包含一个WEB-INF的目录,这个目录下包含classes目录,lib目录和。

/WEB-INF/classes存放按package组织的class文件,/WEB-INF/lib目录存放jar文件,

描述了很多东西,请读参考书。

  8 我的普通HTML文件应当放在哪里?

答:放在除了/WEB-INF以外的其他地方。

  9 我访问不到servlet,甚至连HTML文件都访问不到!

答:第一你没启动服务器。第二你敲错了端口。第三你没有正确配置context-path。

第四你的服务器不支持auto reload或者你关闭了这一选项,你得重启服务器。

第五确认你没有把HTML放在/WEB-INF目录下,那是访问不到的。

  10 我能访问HTML但是访问不到servlet。

答:请检查你的文件。确保你正确定义了和元素。

前者标识了一个servlet,后者将一个相对于context-path的URL映射到一个servlet。

在Tomcat中你可以通过/context-path/servlet/package/servletname的形式访问servlet,

但是这只是Tomcat的便捷访问方式,并不是正式规范。