Tomcat的安装使用
什么是Tomcat
作为轻量级服务器,是Apache基金会下开发出来的开源的服务器。其默认端口号为8080。目前我使用的是8.0版本。
安装Tomcat
做为免安装的软件在使用的时候推荐将其安装在自己较为好找的英文路径下,尽量不适用空格,数字等一些特殊符号作为文件夹名,可能会出现异常情况。
打开安装目录下的bin目录---->找到startup---->打开以后不要关闭----->在浏览器中输入127.0.0.1:8080 正确打开到连接以后会出现tomcat的网页 。其中可以修改Tomcat的默认端口号,使其和浏览器的端口号一致,就可以省略端口号不写
第二种方式:在tomcat的安装目录bin目录下打开命令行 输入service install 移除的时候输入service remove
两种安装方式的区别
前者在学习初期比较方便,在每一次对tomcat中进行操作的时候都要进行重新启动的操作。使用后面的那种操作在项目时比较适用,项目启动以后就不会经常对轻量级服务器进行操作
Eclipse中使用Tomcat
需要安装插件,这里我使用的是这个net.sf.eclipse.tomcat_9.0.1.jar
找到Eclipse的安装目录,将其直接粘贴到Pluging中。重启Eclipse以后再windows--->preference中找到tomcat--->选中对应的Tomcat的版本号,Tomcat的安装地址。
然后就可以愉快的使用了
web项目部署到项目
1. 直接将项目拷贝到webapps文件夹下2. 在sever.xml 中Host节点中添加一个节点
`< Context docBase="项目的绝对路径" path="项目的名称" / >`斜杠必须有
注意项目名称不是由文件夹名称来决定,是由Connect节点中的path属性来决定的(重点)
3. 在tomcat解压目录下con\Catalina\localhost中进行配置,添加一个xml 查询使用xml文件名找到
手动创建web工程
- web工程的结构【动态的web工程】
实现步骤:基于java工程修改+第二种不熟项目的方式- 创建一个JAVA工程
- 创建一个普通文件夹WebContent
- WEB-INF[名字、大小写、符号必须保持一致]
a. web.xml【web工程的配置文件】
b. classess文件夹【将java工程字节码编译】
c. lib 文件夹【第三方引入的jar包】
- WEB-INF[名字、大小写、符号必须保持一致]
- 网页、普通文件夹
servlet
是运行在Web服务器中的小型Java程序(class类)和普通的java类的区别
可以被浏览器访问到
为什么需要去通过url去访问Java类中的方法
需要将前端页面的数据在后台代码获取到。需要从数据库中展示到前段页面
Servlet的实现:
-
servlet类的创建
-
实现servlet接口(其中的方法)
init:初始化
service:服务
destroy:销毁 -
继承一个GenericServlet类
实现了servlet接口
实现了servletconfig接口【servlet对象创建的时候,服务器提供的】
service是抽象的 -
继承一个HttpServlet类【推荐】
继承了GenericServlet
service方法实现了
生命周期中的service方法:
- 强转了请求对象以及响应对象
- 调用了自定义的service方法(带协议的请求对象,带协议的响应对象)
- 可以根据请求方式进行处理doGet处理Get请求、doPost方法处理post请求
-
【注意事项】
1. 重写了service方法,就没有必要去重写doGet/doPost
- servlet程序的配置
需要早web.xml中针对servlet类进行一个配置
Servlet生命周期
Servlet程序的对象是谁创建的?对象在什么时候开始创建?方法每次调用的是谁?
1.服务器首次请求Servlet创建的,单例模式 只有一个对象。
在其中不可以定义成员变量,使用以后会出现线程安全问题
1.也可以在服务器启动的时候去创建servlet的对象【load-on-startup:建议大于5】
2. 服务器正常关闭的时候会执行销毁的方法
servlet 请求对象
ServletRquest
定义:将客户端请求信息提供给某个Servlet的对象。servlet容器创建ServletRquest对象,并将该对象作为参数传递给该servlet的service方法
HttpServletRquest
getParameter(标签的name属性的值)
一个那么属性对应一个值的情况 例如文本、单选框
getParameterValues(标签name属性的值)
复选框可以使用
getParameterMap()
将提交的所有数据,封装到一个map中
map<key,value>
key:name 属性的值
value:name属性对应的标签中的值
乱码解决
get
Tomcat7 中需要
1.代码方式
1.1 将获取的数据使用ISO-8859-1转化为字节数组
1.2 将字节数组转换成UTF-8的字符串
2. 修改Tomcat中的配置信息
post
1. 设置请求对象的编码,必须写在获取数据之前进行设置【必须写在第一行】
servlet 响应对象
servletResponse
HttpServletResponse
响应数据是有乱码出现的:并且响应数据不区分GET以及POST请求
响应对象.setContentType("text/html;charset=utf-8")
响应对象.setContentType("text/html");
响应对象.setCharacterEncoding("UTF-8");