Web服务器
什么是服务器:
- 硬件上就是一台配置很高的电脑
- 软件上安装相应的软件,如果是Web服务器,安装Web容器。如:Tomcat
JavaEE的规范
- 在Java中所有的服务器要实现一组Oracle公司规定的接口,这些接口称为JavaEE规范。不同厂商的JavaWeb服务器都实现了这些接口。在JavaEE中一共有13种规范。
- 常见的JavaEE规范有:JDBC、XML、JSP、Servlet、EJB等。
什么是Web服务器
Web服务器是实现了JavaEE规范,并且运行在服务器上的软件。我们写的Java程序运行在Web服务器中。由Web容器去调用我们写的程序。Web容器也是用Java写的。
Tomcat服务器
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat
支持的规范:该服务器支持全部JSP以及Servlet规范
安装包的类别:
- exe版本:运行在windows服务器中,向服务中添加自动启动
- zip:解压就可以使用,不用安装。
- src: tomcat的源代码
使用64位要求:
- 操作系统64位
- JDK要64位
- Tomcat也是64位
不然使用32位
启动与关闭:tomcat默认的端口号是8080
- 启动:bin目录下startup.bat
C:\apache-tomcat-7.0.70\bin>shutdown.bat
是否启动成功:
- 关闭:bin目录下
C:\apache-tomcat-7.0.70\bin>shutdown.bat
Tomcat目录结构:
目录名 | 作用 |
---|---|
bin | tomcat的启动和关闭的一些可执行文件 |
conf | config配置,用于tomcat启动时的配置文件,如:server.xml |
lib | tomcat启动时必须加载的jar包 |
logs | 服务器的日志记录文件 |
temp | 临时文件,服务器运行过程中出现垃圾文件 |
webapps | 我们的程序发布的文件夹,浏览器可以直接访问的目录 |
work | 工作目录,后期JSP运行时的工作目录 |
Tomcat启动时常见的问题:
未设置JAVA_HOME环境变量
出错信息:
最少要配置一个环境变量,因为tomcat是运行在JVM中,必须要配置JDK。
解决办法: 添加JAVA_HOME的环境变量(安装JDK然后配置的环境变量)
端口被占用
出错信息:
解决方法:
- 方法一:找到占用端口号的程序,退出。使用软件
- 方法二:修改tomcat默认的端口号
文件位置:tomcat/conf/server.xml
把8080改成8888端口号
重新启动服务器
然后打开浏览器在地址栏输入localhost:8888
来访问
Tomcat项目的发布方式:
- 方式一:
直接将项目复制到webapps文件夹下就可以
webapps相当于地址栏的localhost:8080
- 方式二:
WebApps/ROOT 欢迎页面,WEB-INF/web.xml。修改欢迎页面
<!-- 配置欢迎页面 -->
<welcome-file-list>
<welcome-file>b.html</welcome-file>
</welcome-file-list>
b.html在WebApps/ROOT文件夹下
我们的项目是发布到webapps的目录下面的,然后webapps会自动生成一个文件夹,里面就是我们的项目,然后项目里面有的src源代码生成的class字节码是放在WebRoot/WEB-INF/classes的目录下面(之前的class字节码是放在bin目录下的)
Web项目结构
- lib: 第三方的各种jar库
- classes: 源代码生成的字节码文件
- web.xml: 配置当前的项目,其中servlet也在这里进行配置
开发Servlet步骤
1) 编写Java类,继承于HttpServlet抽象类
2) 重写doGet或doPost方法,分别用来处理get和post请求
3) 设置响应的MIME类型,text/html;charset=utf-8
4) 得到一个打印流PrintWriter向浏览器输出字符串:Hello Servlet!
5) 在web.xml文件中配置servlet,指定Java类全名,指定访问地址
public class HelloServlet extends HttpServlet {
//2个参数:请求,响应
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
//设置响应的MIME类型,text/html;charset=utf-8
resp.setContentType("text/html;charset=utf-8");
//得到一个打印流PrintWriter向浏览器输出字符串:Hello Servlet!
PrintWriter out = resp.getWriter();
out.print("<h1 style='color: red'>Hello Servlet</h1>");
}
}
- 编写文件web.xml
<!-- 配置servlet -->
<servlet>
<!-- servlet的名字 -->
<servlet-name>hello</servlet-name>
<!-- servlet的类全名 -->
<servlet-class>Demo.HelloServlet</servlet-class>
</servlet>
<!-- 配置访问地址 -->
<servlet-mapping>
<!-- 和servlet相同的名字 -->
<servlet-name>hello</servlet-name>
<!-- 访问地址 -->
<url-pattern>/loveyou</url-pattern>
</servlet-mapping>
- 部署项目到tomcat
- 访问Servlet
启动tomcat,输入地址