一、服务器的认识
1、服务器的分类:
-
硬件服务器:就是一台安装了软件服务器且配置较高的计算机
-
软件服务器:就是一个软件
- 数据库服务器:Mysql,Oracle等;
- web服务器:开源服务器:Apache、Tomcat等
- 应用服务器:商业服务器:WebSphere(IBM)、WebLogic(Oracle)、JBoss(red hat)
- 其他:邮件服务器、FTP服务器、代理服务器等
2、常见的javaweb服务器
WebSphere(IBM)、WebLogic(Oracle)、JBoss(red hat)上述三个都支持JavaEE规范
Tomcat开源免费,只实现了Servlet规范
二、Tomcat的认识
Tomcat开源免费,目前使用的主流时8.0版本,默认端口号时8080,80端口是http默认端口,不用写直接访问即可。
1、Tomcat目录的结构
bin : 一些工具(开启,关闭)
conf :配置文件 server.xml[修改端口]
80是默认端口
index.html是默认主页
<Context docBase="软件路径" path="名称" />
lib: jar包存放处
log:日志
webapps:项目可以放里面
temp
work
2、Tomcat常见错误
1、使用前需要先把Tomcat服务打开,否则会无法连接
2、出现Address already in use: JVM_Bind
说明端口被占用,可能是重复启动Tomcat服务,也有可能本身端口被占用
3、出现404错误说明访问资源不在Tomcat中,检查项目放置位置
4、其余错误可以在logs中查看
三、JaveWeb项目
1、JavaWeb项目结构
-
跟目录(随便取,建议取webapp,webapps,webContext…)
-
资源文件(heml、css、图片)可有可无,自己定
-
WEB-INF(只能这样写,必须严格遵循,里面的内容不能直接访问)
- classes(存放字节码文件,也就是Java代码)
- web.xml(一些配置,配置文件)非必须
- lib(需要使用的jar包)
-
2、web项目部署
1、直接把项目文件夹放到Tomcat的webapps中
2、需要在server.xml文件中进行配置(在Host里面的Value下面加入下列代码)
Context :代表上下文配置
docBase:代表项目的物理路径
path:上下文路径,可以不写
四、Servlet基础
Servlet是一个接口,是sun公司制定的一种规范,但是sun公司没有实现他,而是由各大服务器厂商(Tomcat)去实现的。
Tomcat是一个javaweb服务器,也是一个Servlet容器, 里面存放的是Servlet
1、实现Servlet方式
①、按规则创建一个web项目;
②、创建实现类去实现Servlet接口/继承HttpServlet类(推荐) ,并且实现或者重写service方法;
public class HelloServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
//super.service(arg0, arg1);
System.out.println("hello servlet....");
}
}
③、在 web.xml中进行配置,告诉Tomcat现在有一个Servlet交给需要管理;
第一种方式:在xml文件中进行配置
<!-- 声明一个servlet -->
<servlet>
<!-- 这个是为Servlet取的名称 -->
<servlet-name>heihei</servlet-name>
<!-- 这个是一个Servlet类的全限定名 -->
<servlet-class>cn.xxxx.LifeServlet</servlet-class>
</servlet>
<!-- servlet的一个映射,向外告知地址 -->
<servlet-mapping>
<!-- 对应的映射的Servlet是哪一个 -->
<servlet-name>heihei</servlet-name>
<!-- 访问的路径 -->
<url-pattern>/heihei</url-pattern>
</servlet-mapping>
第二种方式:注解方式进行配置
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
}
④、配置Tomcat服务文件server.xml中的上下文路径 :
注意:docBase路径不要写错,不需要写到具体需要执行的文件,只需要到上一级文件夹
⑤、访问路径:
http://ip地址<:端口></上下文路径>/资源路径
ip地址: localhost(本地)/127.0.0.1(本地)/172…
端口:如果是80可以不写
资源路径:如果不写默认会找 index.html/index.jsp
执行流程:
注意:一定要按照web项目的标准来执行,不要忘记classes文件!
2、Servlet生命周期
- 出生(构造方法) -> 初始化(init) -> 服务(service->doGet、doPost,…) -> 销毁(destroy)
-
Servlet创建的时机
—> 默认第一次访问这个Servlet就会创建
—> 可以设置为随着tomcat启动而创建<load-on-startup>1</load-on-startup>
-
调用服务方法:第n次访问(除去第一次)
-
销毁:当正常关闭的时候会调用销毁方法(destory())
-
Servlet是单例的(只会创建一次)---->记住:如非必要,不要在这里面创建成员变量
3、关键对象 HttpServletRequest/HttpServletResponse
- HttpServletRequest :请求对象
req.setCharacterEncoding(“UTF-8”); -> 设置请求编码,解决POST请求的乱码问题
req.getParameter(“username”) -> 获取前端传过来的参数 - HttpServletResponse:响应对象
resp.setContentType(“text/html;charset=UTF-8”); -> 设置响应的类型以及编码