从Servlet开始

JSP+Servlet+JDBC的开发算得上是Java Web开发最传统的模式吧,一切从Servlet开始。在开始之前,还是先简单说下Web应用。

 

针对web程序,各大服务器统一了一种标准:最外层一个目录(此web应用的名称),该目录下面有两个目录(META-INF和WEB-INF)和一个文件index.jsp(其实这个文件有没有无所谓),META-INF下面有一个文件(据说是用来生成jar包用的,没有什么看到到的效果和用处,初学完全可以不理会),接下来非常重要:WEB-INF下面有两个目录(classes和lib)和一个文件web.xml。这两个目录和该文件非常重要,其中classes是用来存放.class文件,lib下面存放一些程序用到的jar包,web.xml是配置文件。

 

接着在开源的世界当中,诞生了很多围绕Java web开发的框架。但是我们始终要培养并坚持一种好的编程思想,因为万变不离其宗,这些框架也是在这些好的思想之下诞生的。本人现在也没怎么学习,只是稍微了解一点,到时候再慢慢来。

 

好了,话不多说,从HelloWorldServlet开始。

以下是第一个Servlet程序的主要代码

---------------------HelloWorldServlet.java---------------------------------------

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

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


public class HelloWorldServlet extends HttpServlet{

 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  resp.setContentType("text/html;charset=utf-8");
  PrintWriter out = resp.getWriter();
  out.println("<html><head><title></title></head><body>你好Hello World;</body></html>");
  out.flush();
  out.close();
 }

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  doGet(req, resp);
 }
}
--------------------------------index.jsp----------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>HelloWorldServlet</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
  </head>
 
  <body>
    <form action=/HelloWorldServlet/abcd method=get>
     <input type=text name="test">
     <input type=submit value="submit">
    </form>
   
    <form action=abcd method=get>
     <input type=text name="test">
     <input type=submit value="submit">
    </form>
   
    <form action=HelloWorldServlet/cccc method=get>
     <input type=text name="test">
     <input type=submit value="submit">
    </form>
   
    <form action=/HelloWorldServlet/HelloWorldServlet/cccc method=get>
     <input type=text name="test">
     <input type=submit value="submit">
    </form>
   
  </body>
</html>

------------------------------------------web.xml-------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
  <servlet>
   <servlet-name>MyFirstServlet</servlet-name>
   <servlet-class>HelloWorldServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
   <servlet-name>MyFirstServlet</servlet-name>
   <url-pattern>/HelloWorldServlet/cccc</url-pattern>
  </servlet-mapping>
 
  <servlet-mapping>
   <servlet-name>MyFirstServlet</servlet-name>
   <url-pattern>/abcd</url-pattern>
  </servlet-mapping>
</web-app>

 

下面做一些简单介绍和解释。

Servlet是一种服务器端的Java应用程序, 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet工作模式如下:1、客户端发送请求至服务器2、服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器3、服务器将响应返回客户端

 

后来出现的JavaServer Pages(JSP)技术实现普通静态HTML和动态HTML混合编码的技术,这项技术过几天再学学基础。

 

要创建一个HttpServlet就要扩展HttpServlet类,该类提供了应用编程接口。

在我们的这个简单的实例当中,前面form action=“”表示提交到相应Servlet(以“/”开始,路径不带入应用名),method=。。。表示提交方式,主要有get和post两种方式,Servlet当中就要实现不同的接口,否则会报错。

web.xml是配置文件,里面 <servlet>和<servlet-mapping>是成对(其实是一对多的)形式出现的,二者就是通过<servlet-name>联系起来的,<servlet-class>是Servlet名,<url-pattern>是访问形式

 


 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值