java web 学习笔记 - servlet01
---恢复内容开始---
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的更多相关文章
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java web 学习笔记 编码问题总结
java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...
- Java Web 学习笔记 1
Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...
- [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- Java Web学习笔记之---JSP
Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...
- JAVA Web学习笔记
JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...
随机推荐
- Koa2学习(一)环境搭建
Koa2学习(一)环境搭建 koa2脚手架 koa2服务安装 koa2-generator目录结构 什么是 Koa2 koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更 ...
- AnimatorCompatHelper clearInterpolator
supportLib 26.0.0+以上AnimatorCompatHelper类被移除 所以clearInterpolator(view)找不到 替换方案: TimeInterpolator mDe ...
- 并不对劲的bzoj1853:[SCOI2010]幸运数字
传送门-> 据说本题的正确读法是[shìng运数字]. 听上去本题很适合暴力,于是并不对劲的人就去写了.其实这题就是一个很普(有)通(趣)暴力+神奇的优化. 首先,会发现幸运数字很少,那么就先搜 ...
- Java总结基础知识
权限关键字: public:可以被所有其他类所访问,不同的包 protected:当前类的成员.同一个包中.不同包中对子类可见父类protected,继承类 default:同一包中的类可以访问,声明 ...
- Java 学习路线建议
在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可, ...
- SetWindowPos
SetWindowPos函数改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序.子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序.顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口. ...
- P5068 [Ynoi2015]我回来了
传送门 解锁成就:ynoi的题目都做到过原题 因为\(n\)很小,我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合,这个可以用bitset存,然后先一遍bfs,再 ...
- .NET Core 跨平台物联网开发:SDK 属性、方法、委托、类(四)
系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四) SDK文档 属性.方法.委托.类 http://pan.whuanle.cn/index.php?dir=up ...
- float(double)快速转换int的方法
自己写一个软件渲染器的时候,无意中发现float转换int非常耗时,于是查阅文章,这才有了这个命题,以前不清楚还有这么个机制.网上看了很多文章,搜索到了一个数字6755399441055744,这个是 ...
- POJ 2255 Tree Recoveryw(二叉树)
题目原网址:http://poj.org/problem?id=2255 题目中文翻译: Description 小瓦伦丁非常喜欢玩二叉树. 她最喜欢的游戏是用大写字母构造的随机二叉树. 这是她的一个 ...