web服务器的作用:
当接收的请求是动态请求,则会将请求给web容器拼凑生成代码,返回web服务器。
一般在平时说的“买服务器”是指一台专门用于安装Web服务器的计算机,web服务器只是一个软件而已。
WEB服务器介绍:
实现最简单的Web服务器
import java.io.*;
import java.net.*;
public class Server{
public static void main(String args[])throws Exception{
ServerSocket server = new ServerSocket(8887);
Socket socket = server.accept();
PrintStream out = new PrintStream(socket.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("1.html"))));
String line = null;
while((line=in.readLine())!=null){
out.println(line);
System.out.println(line);
}
socket.close();
server.close();
}
}
tomcat介绍:
WEB服务器&WEB容器
web服务器只能完成静态资源的请求;
web容器能够进行动态资源的请求;
tomcat就是一个最简单的web容器,是apache的jarkata项目的子项目。
Tomcat支持JSP、Servlet,而不支持J2EE的全部规范。
tomcat 7.0.X支持Servlet 3.0规范,因此建议使用7.0.X;
tomcat有两种版本:
(1)二进制版本:解压后需要配置环境变量,建议使用此版本。
(2)服务版本:可执行文件,安装好后会在系统中注册服务.
tomcat目录介绍:
tomcat有几个文件夹:
(1)bin:存放可执行命令,比如开启和关闭tomcat:startup.bat;
(2)conf:配置文件。
(3)webapps:发布web应用。
(5)work:临时的java或class文件。
Tomcat基本配置
注意:Tomcat不要放在中文目录或带有空格的目录中;
一、配置环境变量
1.配置 JAVA_HOME :C:\Java\jdk1.6.0_27
2.配置 CATALINA_HOME:C:\apache-tomcat-7.0.6 (这个环境变量可以不配)
这里以我的配置为例,根据自己的安装位置调整;
catalina_home配置了以后,当出现如图情况:
当点击C:\tomcat\bin\startup.bat后 启动的是D:\tomcat
二、配置端口
商业中一般端口为80,因为http端口为80;比如 而不会
默认为8080,可以在tomcat/conf/server.xml中的第68行附近配置.
<Connector port="8888" protocol="HTTP/1.1" //此处可以把8888换成任意端口.
connectionTimeout="20000"
redirectPort="8443" />
配置完这些后已经可以使用tomcat了,在浏览器中输入 后弹出如下页面:
端口被占用问题:
如果有其他软件占用了此端口,则会导致tomcat不能启动;
解决方案:
用FPort等软件查看端口使用情况,然后 kill 此进程即可;
三、配置用户角色
为了在页面中管理部署web应用,必须要有用户,因此需要配置新用户和密码(原本无用户)。
在tomcat/conf/tomcat-users.xml中的<tomcat-users></tomcat-users>中添加如下语句:
<role rolename="manager-gui"/>
<user username="admin" password="12345" roles="manager-gui"/> //用户名为admin,密码为12345
JAAS:Java Authentication Authorization Service 即Java验证授权服务
如图可以利用前面设定的用户名和密码登陆:
四、配置部署web应用路径
<?xml version="1.0" encoding="GBK"?>
<Context docBase="F:/publish" debug="0" privileged="true"> //docBase是路径,可以自己调整
</Context>
这样可以输入 访问,注意这个test就是xml文件的名字。
比如xml文件的名字为x.xml,则输入
3.可以在网页中部署,如图所示:
可以通过war包或者一个路径部署,war包可以从Eclipse中导出。
常见注意点:
1.设置端口号:在conf/server.xml中修改。
比如 <Context path = "/test" docBase = "D:\test"/>,则浏览器中输入则可以运行D:\test的内容。
注:在配置完后还要在conf/web.xml中
<param-name>listings</param-name> <param-value>false</param-value>改成true |
3.配置默认首页:在conf/web.xml中最后
<welcome-file>index.html</welcome-file> |
说明默认为index.html,因此如果输入则会自动调用index.html.
5.第一次用户请求某个JSP会比较慢。
HTTP常见状态:
(1)404错误:客户路径不正确造成。
(2)500错误:服务器内部错误。
因此总的来说:
(1)2##:请求成功。
(2)4##:客户端错误。
(3)5##:服务器错误。
JSP文件简介:HTML+JAVA代码。
<%。。。%>中嵌入java代码。
在html中<form>的action属性可以设置服务器处理请求的jsp文件,例如:
<form action = "hello.jsp" method = "post">
接下来是一个最简单的应用tomcat的程序,用户输入任意字符串比如world,服务器返回hello加上字符串,比如hello,world.
<html>
<head>
<title>Demo</title>
</head>
<body>
输入内容:
<form action = "input.jsp" method = "post">
<input type = "text" name = "info"/>
<input type = "submit" value = "显示"/>
</form>
</body>
</html>
jsp文件:
<html>
<head>
<title>Demo</title>
</head>
<body>
<%
String str = request.getParameter("info");
str = "Hello,"+str;
out.println("<h1>"+str+"</h1>");
%>
</body>
</html>
web应用目录布局建议:
主目录
|
|-WEB-INF
| |- web.xml
| |- classes
| | |-放置class文件
| |- lib
| | |-放置第三方jar包
| |- src
| | |-存放源文件
|-存放jsp、html
|
|-image
| |-存放图片