您的位置:首页 > 其它

Web开发基础--Servlet

2010-10-29 23:06 357 查看
用向导创建了一个Dynamic Web Project后,我创建了一个Servlet;下载了Google的HTML页面,并将该页面添加到Project中,期望,访问这个servlet时,直接显示这个Google的页面。

这里用到了javax.servlet.RequestDispatcher;通过HttpServletRequest得到Dispatcher,然后在forward,将Google.htm传出即可。

下面面临的问题就是,怎么访问这个Servlet?

这里就需要理解web.xml;

web.xml有几个主要的功能:

1. servlet的名称和映射;

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

</servlet>

- <servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.jsf</url-pattern>

</servlet-mapping>

所有*.jsf的url访问都会映射到Faces Servlet;而Faces Servlet会映射到类FacesServlet

2. session的设定

<session-config>

<session-timeout>10</session-timeout>

</session-config>

一个session的超时时间;应该是10s;

3.针对环境参数(Context)做初始化工作

<context-param>

<param-name>javax.faces.STATE_SAVING_METHOD</param-name>

<param-value>server</param-value>

</context-param>

- <context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>

<param-value>Development</param-value>

</context-param>

- <context-param>

<param-name>javax.faces.FACELETS_LIBRARIES</param-name>

<param-value>/WEB-INF/ezcomp-taglib.xml</param-value>

</context-param>

编辑我的web.xml,加入servlet-mapping和servlet后,搞定!

这里有一个注意的,就是Eclipse自带的XML编辑器,有servlet-mapping等element的名称提示;我不知道XML编辑器是怎么得到这些的。我的猜测是从web-app的属性xmlns得到的。

此外,在调试过程中,还遇到了dynamic web project不能run的问题;总是提示Server Error: The selection cannot run on any server.

查了一下,有几个不确定的地方:

1. Preference-->Server---->Profile: No server profilers registered!

2. Run time Environments: 要不要添加J2EE的库;网上有文章说要添加;

3. project的属性页-->Server: 提示the project is not associate any server;

最后,确认是第3点引起的;即项目的运行时配置没有配置好;

当能够成功运行时,project的属性页--->server有一个Tomcat 7.0 server at localhost;

而Preference-->Server--->Profile;还是No Server profilers registered!

Run time Environments:我没有添加;

这两点,没有关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: