Servlet/JSP相关问题解答

2016-10-13 00:00:00嘉辉 J2EE培训

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

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

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

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

  2 什么是Servlet?

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

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

  Servlet必须是javax.servlet.http.HttpServlet的子类,

  你可以继承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中包含了一个application.xml,其中描述了这个EAR包含哪些模块,以及安全性配置。

  细节请看参考书。

  7 WAR格式是怎样的?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[J2EE培训]相关推荐

[J2EE培训]相关栏目推荐
查看更多
上一篇:Quartz开发企业级任务调度应用 下一篇:2016年J2EE面试题及答案【精选】