JavaWeb

Javaweb之后将不再需要main,因为有了servlet

写好的HTML页面怎么在其它的电脑中显示/打开?

在没有任何技术的情况下:将文件复制到另一个电脑下去查看

应用/程序

tomcat/tom猫/web服务器/应用服务器等等

使用Java开发的,因此依赖于jdk

  • 一个应用只能使用一个端口

tomcat目录结构

bin:都是存放、启动、停止等操作命令的。

conf:配置文件目录

lib : 存放jar包的目录

logs : 存放日志文件

temp : 存放临时文件

webapps : 存放web应用的目录。存放项目的目录 ROOT目录为默认打开的项目

work : 服务器工作目录 : .class/.java

动态网页技术

JavaEE最主要最核心的两个技术: Servlet、JSP(Java Server Page)

Servlet只是一个特殊的类(但并不是工具类 )

  1. 创建一个普通的Class
  2. 继承HttpServlet
  3. 重写doGet、doPost方法
  4. 在Web.xml中配置(一对一对的)
<!-- 告诉tomcat 我有一个Servlet类,并且告诉它访问的名称是什么 -->
    <!-- Servlet类的位置 -->
    <servlet>
        <!-- 这个名称随便写 -->
        <servlet-name>aaa</servlet-name>
        <servlet-class>com.rimi.servlet.HtmlServlet</servlet-class>
    </servlet>
    <!-- servlet的访问名称-->
    <servlet-mapping>
        <!-- 与对应的servlet类的name保持一致 -->
        <servlet-name>aaa</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
  1. 访问: http://ip地址:端口号/项目名/

简单图解

一般 JAVA 网页 的 目录 结构_数据

JavaWeb结构

1、 BS:浏览器 和 服务器

2、 CS: 客户端 和 服务器

JavaEE常见状态码

  1. 404 未找到: 文件不存在、路径不对、名称不对
  2. 500 服务器异常: 代码出现Exception
  3. 200 请求成功*(如果时静态页面,系统会自动帮你缓存,状态码304)

200:一般看不见,在network中

一般 JAVA 网页 的 目录 结构_java_02

304:

一般 JAVA 网页 的 目录 结构_数据_03

/**
 * servlet类:继承HttpServlet
 */
public class HtmlServlet  extends HttpServlet {
    //需要重写doGet、doPost方法

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse re) throws ServletException, IOException {
        System.out.println("执行doGet");
        re.getWriter().append("hello world :::::"+System.currentTimeMillis()+new Date());
//        int s = 2;
//        System.out.println(s/0);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行doPost");
    }
}

Http请求方式:get/post

get:在地址栏可以看到提交的数据(显示提交),安全性低,提交的数据长度有限制、速度快

post:在地址栏无法看到提交的数据(隐式提交),安全性高,提交的数据长度没有限制、速度慢

servlet 请求和相应

注意事项:

1、编码问题:代码无法执行可能是因为编码问题乱码(请求时编码,响应内容编码,响应时编码)

//修改相应的编码格式
        //响应的编码格式
        rep.setCharacterEncoding("utf-8");
        //请求的编码格式
        req.setCharacterEncoding("utf-8");
        //响应的内容类型
        rep.setContentType("text/html;charset=utf-8");

2、发送重定向问题:当我们想要登陆错误时重新返回登录页面时

//通过代码控制页面的跳转、切换
        //发送重定向
        //response.sendRedirect("http://www.baidu.com");
        //回到登录页面
        rep.sendRedirect("index.html");

3、return的作用:

a.返回值

b.跳出一个系统

//response.sendRedirect("http://www.baidu.com");
    //回到登录页面
    rep.sendRedirect("index.html");

3、return的作用:

a.返回值

b.跳出一个系统

当我们想在循环后不执行循环下面的代码,就使用return。