第二课--servlet文件创建与运行--hello world

Servlet一般用于写控制器,即MVC开发模式中的c(controller 控制器),但是其也可以用于写网页内容,以下为用servlet文件创建的html网页内容(根据MVC开发模式,最好是使用jsp文件来写HTML内容,因为在jsp文件中可以直接使用HTML语法来描绘网站内容)。即使用jsp来写网页,使用servlet来写控制器。

附:项目中的index.jsp是用来测试创建的web工程是否能正常运行的,而web.xml是用来修改默认的jsp页面、修改写好的servlet-Java程序与在浏览器地址栏中访问该servlet的路径之间关联的

Jsp写HTML

Servlet写HTML

由以上比较可知使用servlet写HTML网页时,会多次使用out.println()语句来输出网页内容,而在jsp文件中直接使用HTML语法对HTML网页进行描述

 

1.创建第一个servlet文件(servlet文件本质上是一个java程序,一般放在项目下的src包中)

直接new->servlet->为该Java文件取类名,如:helloworld

单击next直到以下页面:

首先只对doGet()进行改写,所以复选框中只勾选doGet()

之后单击finish完成创建

2.写入第一个servlet文件代码:

package p.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/helloworld")
public class helloworld extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("<br>Hello World!");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

}

3.调试运行

首先要将项目添加至tomcat上,其次是运行之前要启动tomcat

若是第一次在src文件夹之下创建servlet文件,则myeclipse会在创建好第一个servlet文件的同时为你打开web.xml文件,打开该文件:

Servlet的web.xml

 

Jsp的web.xml

对比二者可知,servlet文件比jsp文件的web.xml多了:

<servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>p.servlet.helloworld</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/servlet/helloworld</url-pattern>
  </servlet-mapping>

第一个<servlet>中的<servlet-name>是作为一个桥梁与<servlet-mapping>中的<servlet-name>相对应,而<servlet-class>描述的是你写的这个servlet文件的具体位置(即包名:p.servlet + 类名:helloworld)

第二个  <servlet-mapping>中的<servlet-name>是作为一个桥梁与<servlet >中的<servlet-name>相对应,而<url-pattern>描述的是在浏览器的地址栏中应该输入的路径(即该servlet写的HTML文件在tomcat上的url)

比如:

A=

<servlet-name>helloworld</servlet-name>

B=

<servlet-class>p.servlet.helloworld</servlet-class>

C=

<url-pattern>/servlet/helloworld</url-pattern>

以上逻辑为:A=B,A=C,所以B=C

由此将该Java文件与一个tomcat服务器上的url对应起来,在浏览器地址栏中填写该url之后就会请求对应的HTML页面,而tomcat在接收到该网页的请求时就会调用服务器上的这个servlet来响应客户端

 

在浏览器的地址栏中填入:localhost:8080/工程名/<url-pattern>中的地址

如:http://localhost:8080/helloworld/servlet/helloworld

单击回车即可看见结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值