JavaWeb——servlet1
一、servlet简介
总的来说,servlet就是一个运行在服务器(tomcat)上的一段小程序,可供开发人员实现客户端的网页请求和服务器响应过程中的操作,是由服务器来创建的,我们只需要配置好后启动程序就可以了。servlet帮我们实现了tomcat识别的war包,再把小程序打成war包存在tomcat下这个过程,不需要我们再自己打war包。
二、http请求方式
要用servlet首先我们得了解服务器常用的请求方式,才能来操作他们。
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。httpservlet类中也提供了doget()和dopost()两种方法。
- GET - 从指定的资源请求数据。
- POST - 向指定的资源提交要被处理的数据
get和post的区别:
三、常见请求状态
- 200-299:本次请求已完成
- 300-399:本次请求已完成,开始下次请求
- 400-499:404请求错误,找不到资源,403:请求方式错误
- 500-599:500服务崩溃,程序出现问题
四、web工程创建
大致知道原理后就来创建第一个web项目吧。
1.在eclipse中新建Dynamic Web Project项目。我这里用eclipse创建的,勾选红框处会自动创建web.xml配置文件
创建好后的项目目录如下:(注意若要手动创建web.xml要创建在WEB-INF目录下)
2.引入servlet-api.jar包,并buid path
3.创建一个类,该类需要继承HTTPServlet类,根据自己需求重写doPost()或doGet()方法
4.配置web.xml配置文件信息(我这里就最简单配了一下名字、目录还可以配置优先级<load-on-startup>等)
5.开发工具关联tomcat,我用的是eclipse
选择你自己安装的tomcat版本
给这个服务起个名字,选择你自己tomcat的安装路径
6.部署项目
五、servlet的配置加载过程
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
例如,可以用config.getInitParameter("path");来获取当前servlet的资源路径
也可以获取全部的配置信息:
1 Enumeration<String> initParameterNames = config.getInitParameterNames();
2 while (initParameterNames.hasMoreElements()) {
3 String key = initParameterNames.nextElement();
4 String values = config.getInitParameter(key);
5 System.out.println(values);
6 }
六、访问servlet
开启tomcat服务后就可以在浏览器里访问servlet啦
我这里使用的都是tomcat默认的端口号和ip
访问/hello的servlet:
http:localhost:8080/servlet-1/hello
访问test.html:
http://localhost:8080/servlet-1/test.html
七、servlet的访问过程
那么servlet访问过程是怎样的,他是怎么找到资源路径的呢?
对于http://localhost:8080/servlet-1/hello
/hello:资源路径
servlet会先去web.xml中找有没有一个<url-pattern>/hello</url-pattern>相匹配,再去找与<url-pattern>在同一级的标签下的<server-name>标签
找到servlet-name时,此时再去找与<servlet-name>同名的标签
六、常用api
HttpServletRequest获取参数:
- getParameter(name):获取一个参数,参数对应前端页面中name属性的值
- getParameterMap():key是参数的name值,value是一个String[]
- getParameterNames():获取所有的key值,返回值是一个迭代器类型
- getParameterValues():针对一个key对应多个值得时候使用
七、乱码问题
在请求和响应过程中若字符编码不一致就会出现乱码的问题,还有可能是浏览器默认编码,编译器编码不一致等原因,改成一致的就可以了。
修改请求和响应的编码方式一般有两种。
方法一:代码中修改
在重写的doPost(),doGet()加入下面两行代码:
request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8");
方法二:修改tomcat/server.xml
JavaWeb——servlet1的更多相关文章
- JavaWeb(四)Servlet-1
1.Servlet 简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet ...
- JavaWeb——Servlet
一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...
- 传智播客JavaWeb听课总结
一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
- 传智博客(JavaWeb方面的所有知识)听课记录(经典)
一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本 ...
- javaweb笔记全套
Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace 选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...
- javaweb笔记分享
Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace 选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...
- 超全面的JavaWeb笔记day10<Response&Request&路径&编码>
1.Response 2.Request 3.路径 4.编码 请求响应流程图 response 1.response概述 response是Servlet.service方法的一个参数,类型为java ...
- Javaweb经典三层架构的演变
1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的 ...
随机推荐
- Html5移动端页面自适应布局详解(rem布局)
在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport,通读网上的各种对于viewport的解释之后 大概viewport可以理解为三种 1.layout viewport ...
- postgresql Streaming Replication监控与注意事项
一监控Streaming Replication集群 1 pg_stat_replication视图(主库端执行) pid Wal sender process的进程ID usesysid 执行流复制 ...
- JavaScript中的垃圾收集机制
JavaScript 具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存. 在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的 ...
- lvm分区创建和扩容
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- HTML5 Canvas(实战:绘制饼图2 Tooltip)
继上一篇HTML5 Canvas(实战:绘制饼图)之后,笔者研究了一下如何给饼图加鼠标停留时显示的提示框. Plot对象 在开始Coding之前,笔者能够想到的最easy的方式,就是给饼图的每一个区域 ...
- LeetCode--055--跳跃游戏(java)
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: true ...
- TFrecords读、写图片文件
参考:https://blog.csdn.net/u014802590/article/details/68495238 参考:https://www.2cto.com/kf/201709/68057 ...
- php md5()函数 语法
php md5()函数 语法 作用:字符串md5编码.dd马达价格 语法:md5(string,raw) 参数: 参数 描述 string 必需.规定要计算的字符串. raw 可选.规 ...
- php substr()函数 语法
php substr()函数 语法 作用:截取字符串 语法:substr(string,start,length)大理石平台 参数: 参数 描述 string 必需.规定要返回其中一部分的字符串. s ...
- Tomcat修改源码,重新编译
源码和编译的区别:源码不能直接运行,是人读的,而编译后的程序是计算机可以读的.所以它们是不同的语言.