华清远见-重庆中心-JavaWeb技术总结

B/S与C/S

  • B/S:Browser/Server浏览器/服务器模式

  • 用户只需要一个浏览器即可访问服务器

  • C/S: Clint/Server 客户端/服务器模式

  • 用户需要下载客户端才能访问服务器

Javaweb就是B/S模式下的软件开发

Servlet

编写Servlet步骤

1.导入Servlet相关依赖

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

2.创建子类并继承HttpServlet,重写doGet和doPost方法

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class FirstServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //执行的代码内容
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }
}

3.在web.xml中设置请求servlet的URL地址

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 声明一个servlet-->
    <servlet>
        <!--设置servlet名称-->
        <servlet-name>firstServlet</servlet-name>
        <!--servlet类所在的完整路径-->
        <servlet-class>com.hqyj.servlet.FirstServlet</servlet-class>
    </servlet>

    <!--设置访问某个servlet的URL地址(设置servlet映射)-->
    <servlet-mapping>
        <!-- 选择哪个Servlet进行映射 -->
        <servlet-name>firstServlet</servlet-name>
        <!--设置请求的URL地址,必须以/开头-->
        <url-pattern>/first</url-pattern>
    </servlet-mapping>
</web-app>

4.访问servlet

重启tomcat,访问"项目上下文地址/first",就表示访问FirstServlet

三层构架

在软件开发中,并不是将所有功能都交给一个类去实现,而是要将其进行分层,从而达到”高内聚、低耦合"的目的。

低耦合是指降低各个模块之间的关联程度,这样便于开发和维护,每个模块各司其职。

高内聚是指每个模块内的功能不可再分。

三层构架包括

  • 数据访问层:用于连接数据库,对数据做增删改查的操作

  • 业务逻辑层:用于处理业务逻辑,在适当的情况下调用数据访问层中的方法

  • 视图表现层:用于展示数据和提供用户输入数据的渠道,在适当的情况下调用业务逻辑层中的方法

访问服务器的某个URL

  • 在浏览器的地址栏中输入对应的url,属于GET提交

  • 使用a标签,在href中输入对应的URL,属于GET提交

  • 使用form表单,在action中输入对应的URL,通过method修改提交方式为GET或者POST

页面向服务端提交数据的方式

  • 使用表单form的name属性显示提交,get提交的数据会暴露在浏览器的地址栏中

<form acti on= "http://localhost:8080/day1/hero" method="get">
    <input type= "text”name= "username">
    <input type="submit" value="提交">
</form> 
  • 使用form表单的name属性隐式提交,post提交的数据不会暴露在浏览器地址栏中

<form acti on= "http://localhost:8080/day1/hero" method="post">
    <input type= "text”name= "username">
    <input type="submit" value="提交">
</form> 
  • 通过"?参数名=值"的方式提交,如果有多个参数使用&拼接

<a href="https://www.baidu.com/s?wd=he11o&a=1&b=2">访问</a>

服务器端获取页面传递的数据

上述的提交方式提交到服务器的数据,都可以使用String str = request.getParameter("name参数名或?后的参数名");获取

class TestServlet exetends HttpServlet{
    doGet(HttpServletRequest req, HttpServletResponse resp){
        String username = req.getParamter("表单中某个表单元素的name值");
    }
    doPost(HttpServletRequest req, HttpServletResponse resp){
        doGet(req,resp);
    }
}

解决请求和响应的乱码

response.setContentType("text/html;charset=utf-8");//解决响应乱码
request.setCharacterEncoding("utf-8");//解决请求乱码

表单提交数据注意事项

  • 表单通过action设置提交的路径,如果要残敌参数,只能使用post提交

  • 如果使用get提交,需要使用隐藏域

<!--post提交-->
<form action="xxxxx?参数=值" method="post"></form>

<!--get提交-->
<form action="xxxxx?参数=值" method="get">
    <!--隐藏域-->
    <input type="hidden" name= "参数名” value="参数值">
</form>

Servle的生命周期

1.执行构造方法一次

2.初始化执行一次:自动调用init()

3.服务执行多次:调用service()方法,之后每次访问都会调用该方法。有该方法时,doGet和doPost失效。如果没有该方法,会根据请求方式试图调用doGet或doPost, 如果没有相应的方法,会出现405, 表示请求方式不允许

4.销毁执行一次:在当前servlet所在项目从tomcat中停止时, 销毁一次,调用destory()方法

使用注解开发servlet

/*使用注解开发Servlet
注解: @特定单词 如@0verride
定义且配置Servlet的注解: @WebServlet ("/请求映射")
*/

@WebServlet("/sysAdmin")
public class SysAdminServlet extends HttpServlet {
     @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp){
        System.out.println("执行servlet方法");
    }
}
//@webServ1et ("/sysAdmin")相当于在web.xm1中进行配置serv1et映射

JSP

使用Java开发,运行在服务器上的页面,jsp文件的后缀名是".jsp"

JSP的组成

  • HTML

  • Java代码(脚本)

<%java代码;%>
  • 表达式:用于在页面中嵌入一个具体的变量值

<%=变量%>
  • 指令

page指令:用于设置当前页面的属性

include指令:用于引入其他页面

taglib指令:用于引入其他标签库

<%@ 指令名 属性="值" %>
  • 注释:无法在浏览器中查看jsp注释,可以查看html的注释

<%-- jsp注释 --%>
<!-- html注释 -->
  • 声明

<%! 定义方法 %>
    • 0
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值