软件结构发展史
单机时代-桌面应用
- 例如office、eclipse
联机时代(Client-Server模式)
- Client/Server结构(C/S结构)是指客户端和服务器结构
- 优点:数据方便共享,安全性高
- 缺点:必须安装客户端,升级与维护困难
互联网时代(Broswer-Server模式)
- Broswer-Srver(B/S)模式即浏览器和服务器架构模式
- 优点:开发简单,无需安装客户端,数据易于共享
- 缺点:相较于C/S模式,执行速度与用户体验相对较弱。
相关概念
- 请求与响应
- 从浏览器发出送给服务器的数据包称为“请求(request)”
- 从服务器返回给浏览器的结果称为"响应(reponse)"
- J2EE
- J2EE(Java 2 Platform Enterprise Edition)是指“Java 2 企业版”
- B/S模式开发Web应用就是J2EE最核心的功能
- J2EE由13个功能模块组成
- Apache Tomacat
- Tomcat是Apache软件基金会旗下一款免费的开放源代码的Web应用服务器程序
- Tomcat试运行Servlet(服务器小程序)的容器
- Servlet
- Servlet(Servlet Applet)服务器小程序,主要功能用于生成动态Web内容
- Servlet是J2EE最重要的组成部分。
第一个小程序
记一下,怕忘了,IDEA还没搞明白,先用的eclipse。eclipse的版本有点多,要选择Eclipse IDE for Java EE Developers。还要下载一下Tomcat。
选中file->New->Dynamic Web Project,写上Project name,一路next,最后选中下面的复选框
当一个类继承HttpServlet时,就会变为Servlet类。
package com.imooc.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 接受请求发来的参数
String name = request.getParameter("name");
String html = "<h1 style='color:red'>hi," + name + "!</h1><hr/>";
System.out.println("返回给浏览器的相应数据为:" + html);
// 从服务器想浏览器返回的输出流
PrintWriter out = response.getWriter();
out.println(html); // 将html发送会浏览器
}
}
看一下web.xml,当我们在浏览器的地址栏输入http://localhost:8080/FirstSerlet/hi?name=Jack时,会借助servlet-mapping通过/hi找到first,在借助servlet通过first找到类。
配置Servlet的类路径应该是<servlet-class>标签。
<servlet-mapping>配置Servlet的映射关系。
<servlet-name>配置的是与<servlet-mapping>对应的Servlet名称
<url-pattern>配置的是Servlet的访问路径
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>FirstSerlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 声明servlet -->
<servlet>
<!-- servlet的别名 -->
<servlet-name>first</servlet-name>
<servlet-class>com.imooc.servlet.FirstServlet</servlet-class>
</servlet>
<!-- 将servlet与URL绑定 -->
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/hi</url-pattern>
</servlet-mapping>
</web-app>
在这一切完成后,还需要发布一下
右击Tomcat,点中add and remove
选中然后点击add,就可以完成发布了
我们来看看网页显示效果
我们在tomcat的目录下可以看到
现在我们看看这个url
我们在webapp目录下添加一个index.html的文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
哈喽,这是一个index.html文件
</body>
</html>
我们就会看到网页显示
标准Java Web工程结构
- tomcat安装目录/webapps/:Tomcat应用根目录
- /web应用目录/:Java Web应用目录,我们的工程目录
- /web应用目录/index.html | .jsp:默认首页
- /WEB-INF:WEB应用的安全目录,用于存放配置文件
- /WEB-INF/web.xml:web.xml是“部署描述符”文件,是该Web项目核心配置文件
- /WEB-INF/classes:存放遍以后的classes文件
- /WEB-INF/lib:用于存放web应用以来的jar文件
- /META-INF/MANIFEST.MF:包含Web应用的版本信息。
请求参数的发送与接收
- 请求参数是指浏览器通过请求向Tomcat提交的数据
- 请求参数通常是用户输入的数据,待Servlet进行处理
- 参数名1?=值1&参数名2?=值2&参数名n?=,多个请求参数间用&分隔。