java web.xml servlet 配置 servlet-class 问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web.xml servlet 配置 servlet-class 问题相关的知识,希望对你有一定的参考价值。

如题 servlet 配置如下
<servlet>
<servlet-name>InitPassword</servlet-name>
<servlet-class>InitPassword</servlet-class>
<init-param>
<param-name>FileName</param-name>
<param-value>WEB-INF/config/ds.config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

请问 servlet-class 表示一个类 (报名.类名),可是在项目里 我找不到这个类啊,?这个类是存在与 jar 中吗?

配置方法:

<servlet>
<servlet-name>InitPassword</servlet-name>
<servlet-class>InitPassword</servlet-class>
<init-param>
<param-name>FileName</param-name>
<param-value>WEB-INF/config/ds.config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

编写servlet程序一定要用包,放到包下面使用,不存在所谓的缺省包(即无包)。此处在配置xml文件时时,<servlet-class>InitPassword</servlet-class>中间要放的类所在包及类名。

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(Common Gateway Interface,CGI)应用程序完成的。

参考技术A 编写servlet程序一定要用包,放到包下面使用,不存在所谓的缺省包(即无包)。此处在配置xml文件时时,<servlet-class>InitPassword</servlet-class>中间要放的类所在包及类名,如package com.baidu;则写为servlet-class>com.baidu.InitPassword</servlet-class>此处类一般为自己编写的,存放于WEB-INF目录下的classes文件夹下追问

找了 ,但项目里 就是这样子写的,我也郁闷了 ,ctrl + shift +r InitPassword 也找不到类,web.xml 搜索 InitPassword 也找不到相关类 ,郁闷ing

参考技术B 你看看配置中有没有其它配置什么的,有没有某项配置是配置所有servlet-class根路径的,比如哪里写着类似的东西:<root-servlet-path>等,可能没这个标签,只是举个例子。 参考技术C <servlet-class>InitPassword</servlet-class>
这里是你的类名,如果有包的话,需要加上包名
eg:
package com.test;
public class InitPassword

则 <servlet-class>com/test/InitPassword</servlet-class>追问

项目就这么写的 InitPassword
没有包名

参考技术D ctrl+f 搜索一下帮你定位追问

搜索过了 , 没有

Servlet读取xml文件的配置参数

web.xml中数据库连接配置:

技术分享图片
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 5 id="WebApp_ID" version="2.5">
 6 <display-name>Servelt_ReadingDBFromWebXml</display-name>
 7 <welcome-file-list>
 8    <welcome-file>index.html</welcome-file>
 9    <welcome-file>index.htm</welcome-file>
10    <welcome-file>index.jsp</welcome-file>
11    <welcome-file>default.html</welcome-file>
12    <welcome-file>default.htm</welcome-file>
13    <welcome-file>default.jsp</welcome-file>
14 </welcome-file-list>
web.xml

 

<!-- 通过getServletContext().getInitParameter("XX")读取 -->
<context-param>
   <param-name>driver</param-name>
   <param-value>com.mysql.jdbc.Driver</param-value>
</context-param>

<context-param>
   <param-name>url</param-name>
   <param-value>jdbc:mysql://localhost:3306/sample</param-value>
</context-param>

<context-param>
   <param-name>username</param-name>
   <param-value>root</param-value>
</context-param>

<context-param>
   <param-name>password</param-name>
   <param-value>admin</param-value>
</context-param>

<servlet>
   <servlet-name>DBServlet</servlet-name>
   <servlet-class>demo.DBServlet</servlet-class>

   <!-- 通过getServletConfig().getInitParameter("XX")读取 -->
   <init-param>
    <param-name>driver</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
   </init-param>
   <init-param>
    <param-name>url</param-name>
    <param-value>jdbc:mysql://localhost:3306/sample</param-value>
   </init-param>
   <init-param>
    <param-name>username</param-name>
    <param-value>root</param-value>
   </init-param>
   <init-param>
    <param-name>password</param-name>
    <param-value>admin</param-value>
   </init-param>

</servlet>

<servlet-mapping>
   <servlet-name>DBServlet</servlet-name>
   <url-pattern>/readingDB</url-pattern>
</servlet-mapping>
</web-app>

Servlet代码:

技术分享图片
 1 /**
 2 * 
 3 */
 4 package demo;
 5 
 6 import java.io.IOException;
 7 import java.io.PrintWriter;
 8 import java.sql.Connection;
 9 import java.sql.DriverManager;
10 import java.sql.PreparedStatement;
11 import java.sql.ResultSet;
12 import java.sql.SQLException;
13 
14 import javax.servlet.ServletException;
15 import javax.servlet.http.HttpServlet;
16 import javax.servlet.http.HttpServletRequest;
17 import javax.servlet.http.HttpServletResponse;
18 
19 /**
20 * Reading DB Config from web.xml
21 */
22 public class DBServlet extends HttpServlet {
23 
24 /**
25 * 
26 */
27 private static final long serialVersionUID = 1L;
28 
29 private String diverClass;
30 private String userName;
31 private String password;
32 private String url;
33 
34 @Override
35 public void init() throws ServletException {
36    diverClass = /* getServletConfig(). */getServletContext().getInitParameter("driver");
37    userName = /* getServletConfig(). */getServletContext().getInitParameter("username");
38    password = /* getServletConfig(). */getServletContext().getInitParameter("password");
39    url = /* getServletConfig(). */getServletContext().getInitParameter("url");
40 
41    try {
42     Class.forName(diverClass);
43    } catch (Exception e) {
44     e.printStackTrace();
45    }
46 
47 }
48 
49 @Override
50 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
51    Connection connection = null;
52    PreparedStatement statement = null;
53 
54    try {
55     connection = DriverManager.getConnection(url, userName, password);
56     statement = connection.prepareStatement("select * from customer");
57     ResultSet rs = statement.executeQuery();
58 
59     PrintWriter printWriter = resp.getWriter();
60     while (rs.next()) {
61      printWriter.println(rs.getString("id"));
62      printWriter.println(rs.getString("name"));
63     }
64    } catch (SQLException e) {
65     e.printStackTrace();
66    } finally {
67     try {
68      if (statement != null) {
69       statement.close();
70      }
71 
72      if (connection != null) {
73       connection.close();
74      }
75     } catch (SQLException e) {
76      e.printStackTrace();
77     }
78    }
79 }
80 }
Servlet

 

原文链接:https://www.cnblogs.com/ilahsa/archive/2012/09/29/2708460.html



































以上是关于java web.xml servlet 配置 servlet-class 问题的主要内容,如果未能解决你的问题,请参考以下文章

关于web项目web.xml配置文件路径的问题。

用java写web应用时候,是不是需要每写servlet的时候都要配置web.xml文件

web.xml的配置问题

servlet在web.xml中怎么配置url-pattern?

Servlet读取xml文件的配置参数

servlet的web.xml文件的几种配置方式