编写第一个ServletDemo
继承HttpServlet
@WebServlet("/WelcomeServlet")
public class WelcomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=GB18030");
PrintWriter out = response.getWriter();
out.println("欢迎进入Servlet");
}
}
配置web.xml
<display-name>ServletDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<!--包和类名-->
<servlet-class>servlets.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<!--访问的url-->
<url-pattern>/servlets/WelcomeServlet</url-pattern>
</servlet-mapping>
运行结果
Serlvet运行机制
在WelcomeServlet.Java添加一个构造方法
public class WelcomeServlet extends HttpServlet {
public WelcomeServlet()
{
System.out.println("创建WelcomeServlet对象");
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
System.out.println("调用doGet()函数!");
response.setContentType("text/html;charset=GB18030");
PrintWriter out = response.getWriter();
out.println("欢迎进入Servlet");
}
}
测试
Servlet对象只创建了一次
在Servlet中读取参数
设置参数
<display-name>ServletDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!--设置全局参数 -->
<context-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</context-param>
<servlet>
<servlet-name>InitServlet</servlet-name>
<servlet-class>servlets.InitServlet</servlet-class>
<!-- 设置局部参数 -->
<init-param>
<param-name>driverClassName</param-name>
<param-value>com.serversql.jdbc.Driver</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>InitServlet</servlet-name>
<url-pattern>/servlets/InitServlet</url-pattern>
</servlet-mapping>
获取参数
public class InitServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// 获取全局参数
ServletContext application = this.getServletContext();
String encoding = application.getInitParameter("encoding");
System.out.println("encoding参数是:" + encoding);
// 获取局部参数
String driverClassName = this.getInitParameter("driverClassName");
System.out.println("driverClassName的参数是:" + driverClassName);
}
}
测试结果