2.Servlet基础.md
1.定义
Servlet:用Java编写的动态资源开发技术
2.特点
- Servlet类是一个普通的Java类,只是继承了HttpServlet类
- Servlet只能交给tomcat服务器运行,不能自己运行
3.手动编写一个Servlet
3.1创建一个Servlet类
package per.liyue.code.serverlet;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServerlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决中文
resp.setContentType("test/html;charset=utf-8");
resp.getWriter().write("This is the first serverlet, currenttime:" + new Date());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
3.2找到编写类的class文件,将这个类的整个包拷贝到一个web应用中的WEB-INF/classes目录下。 注意要整个包拷贝,且路径不要错
3.3在当前web应用下的web.xml中配置这个Servlet类
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<!--配置一个Servlet程序-->
<servlet>
<!--servlet的内部名称,可以自定义,最好是对应的类名-->
<servlet-name>HelloServerlet</servlet-name>
<!--servlet类名:包名+简单类名-->
<servlet-class>per.liyue.code.serverlet.HelloServerlet</servlet-class>
</servlet>
<servlet-mapping>
<!--servlet内部名称,和上面的名称保持一致-->
<servlet-name>HelloServerlet</servlet-name>
<!--访问名称: /名称-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
访问中,查找对应类的逻辑:
3.4启动服务器,访问servlet:
http://localhost:8080/myweb/hello
4.IDE开发
4.1新建项目
- 切换到Myeclipse新建WebProject
- 在src上新建Servlet,修改对应的代码输出
- 在WebRoot目录上新建html
- 修改WEB-INF下的web.xml修改对应关系
- 在Preferences中Myeclipse\Servers中配置tomcat服务器
- 配置完成后在Servers标签页中右键对应的服务器,找到发布。
- 将对应项目添加,完成后还是对应服务器右键,点击发布
4.Web应用目录的简单层次
- Web
- WebRoot根目录
- 静态资源:html...可以直接被浏览器访问到
- WEB-INF: 不可以直接被浏览器访问,通过服务器tomcat
- classes:存放class文件字节码(也就是动态网页的实现代码)
- lib:各种jar包文件
- web.xml:配置文件-配置servlet
- WebRoot根目录
2.Servlet基础.md的更多相关文章
- JSP数据交互(二)和Servlet基础
01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. ...
- Servlet基础(三) Servlet的多线程同步问题
Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...
- Servlet基础(二) Servlet的生命周期
Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- Servlet基础简单总结(上)
Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...
- servlet总结:Servlet基础
Servlet基础 1.手工编写第一个Servlet ⑴继承HttpServlet ⑵重写doGet()或者doPost()方法 ⑶在web.xml中注册Servlet 2.使用eclipse编写第一 ...
- servlet基础(组成与生命周期)
servlet基础作用:servlet是运行在Web服务器或应用服务器上的程序:担当web浏览器或其他HTTP客户程序发出的请求与HTTP服务器上的数据库或应用程序之间的中间层.1.读取客户程序发送的 ...
- Unit01: Servlet基础 、 HTTP协议
Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...
随机推荐
- Delphi如何找到出错行的行数!!
Delphi之通过崩溃地址找出源代码的出错行 一 什么是MAP文件 什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候 ...
- NUMA的取舍与优化设置
在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装numactl: ...
- oracle补齐日期
生成日期列表 SELECT to_date( as first_login_day, ROWNUM - FROM DUAL CONNECT BY ROWNUM <= trunc(sysdate ...
- 初级安全入门——XSS注入的原理与利用
XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...
- linux中tree命令
需要安装tree包(安装:yum -y install tree). tree命令的选项说明如下: [ 匹配选项:] -L:用于指定递归显示的深度,指定的深度必须是大于0的整数. -P:用于显示统配符 ...
- 聊聊 cursor鼠标样式
在前端开发中,很多时候需要对页面的某些元素做鼠标样式的处理,比如button一般用pointer , 文本区一般用text......等等. 今天咱就来聊聊 这个经常用到的 cursor 属性 cur ...
- 普通rgb转换为16进制
http://www.zhangxinxu.com/study/201003/color-exchange-test.html
- django的i18n是如何实现的
在程序中出现 _的地方会调用gettext_lazy(django.utils.translation.py) class LogEntry(models.Model): action_time = ...
- mingw编译ffmpeg 错误:Unknown option "--enable-memalign-hack"
据说mingw编译ffmpeg的话需要添加 --enable-memalign-hack 开关 但如果源码是最新版比如:ffmpeg4.0.2 的话 好像已经禁用了该开关. “我可以确认新的ffmpe ...
- python中Strip()函数的用法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. str.strip([chars]) ...