---恢复内容开始---

1.Servlet介绍

Servlet 是用java语言编写的服务器端小程序,属于一个CGI程序,但与传统的CGI不同的是,它是多线程实现的,并且可以多平台移植。

用户自定义的Servlet类一般都需要继承自 HttpServlet类。

2. Servlet的基本处理流程

3.用Servlet实现第一个hello world

a. HelloServlet.java还是放在WEB-INF下的classes中

b.HelloSevlet 类一定要继承自 HttpServlet,通过servlet.http查找dov文档,可以看到执行的doget方法。

c .通过doget方法中的response参数,获取到PrintWriter对象,即可调用println()函数打打印超文本内容。

helloworld代码如下

package cn.liys.servletdemo;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException{

PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("helloworld");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Hello World");
out.println("</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}

d.需要注意的是,编译该类时,需要用到开发包servlet-api.jar ,是从tomcat/lib目录下获取到的。

一个是需要配置classpath内容,另外需要将该jar包拷贝到 jre/lib/ext下

最后一个,在win7下最好以管理员身份运行cmd,这样javac编译才会成功。

e. 需要在web.xml中配置该servlet的映射。

//定义servlet

<servlet>

    <servlet-name>hello</servlet-name>

<servlet-class>cn.liys.servletdemo.HelloServlet</servlet-class>

</servlet>

//定义路径映射,可以定义多个映射servlet-maping

<servlet-mapping>

    <servlet-name>hello</servlet-name>

     <url-pattern>/hello.asp</url-pattern>

</servlet-mapping>

...

<url-pattern>/hello.liys</url-pattern>

...

4.用servlet接收表单提交内容

a. 在servlet中需要实现doGet() doPost()方法,可以从java doc中查询怎么用。

根据定位到 javax.servlet.http包中的HttpServlet类,然后去查doGet ,doPost方法的使用。

打印的话需要查参数中的response的getWriter();

代码如下:

package cn.liys.servletdemo;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class InputServlet extends HttpServlet{

protected void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
String info = req.getParameter("info");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("helloworld");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>"+info);
out.println("</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}

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

}

b.需要注意的是在web.xml中的映射要将将路径定位到表单所在的目录下,以方便表单在action中直接servlet-name,不需要../等

web.xml配置片段如下:

<servlet>
<servlet-name>input</servlet-name>
<servlet-class>cn.liys.servletdemo.InputServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>input</servlet-name>
<url-pattern>/InputServlet/input</url-pattern>
</servlet-mapping>

表单内容如下:

<html>
<head>
<title>
Servlet 的doget dopost
</title>
</head>
<body>

<form action="input" method="post">

内容: <input type="text" name="info">
<input type="submit" value ="提交">

</form>

</body>

</html>

5.servlet生命周期

一般servlet在第一次调用时,启动初始化操作init();

如果想在tomcat启动时调用需要在web.xml中的servlet段加入<load-on-startup>1<load-on-startup>

destory()方法一般在 web容器结束时,或者是长时间不调用servlet时,或者是reload时调用。

6.取得初始化配置参数

通过带config参数的init来取得

。。。

private String database = null;

public void init(ServletConfig config)throws ServletException{
  database = config.getInitParameter("database");
} 。。。。 在Web.xml中这么配置
<servlet>
...
<init-param>
  <param-name>database<param-name>
<param-value>oil<param-value>
</init-param>
</servlet> 7.取得session ,application内置对象 a.通过doGet(request,response)中的request可以取得session对象。 request.getSession()
通过取得session对象可以对登陆信息进行验证。 b.通过super.getServletContext()取得application对象
该函数是在HttpServlet的父类GeneralServlet类中定义。 通过此操作可以取的运行环境的真实目录, app.getRealPath();

java web 学习笔记 - servlet01的更多相关文章

  1. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. java web 学习笔记 编码问题总结

       java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...

  5. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  6. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  8. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

  9. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

随机推荐

  1. Oracle修改序列(Sequence)起始值问题

    Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改 ...

  2. js数组清空和去重

    1.splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 Array[0],空数组,即被清空了 2 ...

  3. shell网络管理

    背景知识 联网就是通过网络将主机进行互联并采用不同的规范配置网络上的节点.我们以 TCP/IP 作为网络栈,所有的操作都是基于它进行的.网络是计算机系统中重要的部分.连接在网络上的每个节点都分配了一个 ...

  4. 黑客常用WinAPI函数整理

    之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程.为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特 ...

  5. Center OS Tomcat7 服务器配置总结

    tomcat7 目录结构 --- webapps 应用存放目录,可以配置Host 来决定这个文件的目录,可以配置多个Host,多个webapps ---ROOT 项目根目录,Tomcat会特殊对待这个 ...

  6. java笔记之线程简述1

    1:线程是依赖于进程而存在. 2:什么是进程?  通过任务管理器我们就看到了进程的存在.  而通过观察,我们发现只有运行的程序才会出现进程.  进程:就是正在运行的程序.  进程是系统进行资源分配和调 ...

  7. C#中遍历ArrayList的三种方法(转)

    using System; using System.Collections; using System.Linq; using System.Text; namespace ArrayListDem ...

  8. 第四篇(那些JAVA程序BUG中的常见单词)

    xxx cannot be resolved to a variable xxx无法解析为变量 resolve 解析

  9. linux系统 for 大数据

    使用大数据前,需要选择linux系统,本人选择的是centos6.9系统,并且装在虚拟机上,并且要注意: 1.网络类型选择NAT. 2.语言设置为English(English). 3.操作系统的键盘 ...

  10. python的Template使用指南

    本文主要讲解了python中Template使用方法以及使用技巧,非常实用,有需要的朋友可以参考下: Template无疑是一个好东西,可以将字符串的格式固定下来,重复利用.同时Template也可以 ...