Java教程

JavaWeb学习--JavaBean与Servlet

本文主要是介绍JavaWeb学习--JavaBean与Servlet,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • JavaBean
    • 设计原则
    • 动作元素
      • useBeans
      • setProperty
      • getProperty
    • 作用域
      • forward
      • param
    • Model1
  • Servlet
    • Servlet容器等级
    • Servlet生命周期
    • Servlet与九大内置对象关系
    • Servlet获取表单数据
    • Servlet路径跳转
  • MVC

JavaBean

Javabeans就是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

设计原则

  • 公有类
  • 无参构造方法
  • 属性私有
  • getter和setter方法

举例:

public class Users {
    private String account;//用户名
    private String password;//密码

    public Users(){}

    public void setAccount(String account) {
        this.account = account;
    }


    public void setPassword(String password) {
        this.password = password;
    }

    public String getAccount() {
        return account;
    }

    public String getPassword() {
        return password;
    }
}

动作元素

JSP动作元素( action elements ),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

存取JavaBean有关的:

  • <*jsp:useBeans>
  • <*jsp:setProperty>
  • <*jsp:getProperty>

useBeans

作用:在jsp页面中实例化或者在指定范围内使用javabean :
格式:

<jsp:useBean id=“标识符(引用)” class=“类名” scope=“作用范围” />

setProperty

在这里插入图片描述

getProperty

在这里插入图片描述

作用域

在这里插入图片描述说明∶使用useBeans的scope属性可以用来指定javabean的作用范围。

在这里插入图片描述

forward

语法:<jsp:forward page=“URL”/>
等同于request.getRequestDispatcher("/url").forward(request,response);

param

语法<jap:param name=“参数名” value=“参数值”>
常常与forward动作指令一起用作为子标签
在这里插入图片描述

Model1

在这里插入图片描述

Servlet

Servlet容器等级

在这里插入图片描述
一个context就是一个项目


Servlet生命周期

在这里插入图片描述
servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。

  • 1.init( ),当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。
  • 2.service( ),第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。
  • 3.destory( ),当要销毁Servlet时,Servlet容器就会调用这个方法,在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。

我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice( )方法.因为一个sevrvice( )方法会调用doPost或者doGet方法

Servlet与九大内置对象关系

在这里插入图片描述

Servlet获取表单数据

对于一个表单:

<form action="Login" method="post" class="login">
  <p>login</p>
  <input type="text" name="account" placeholder="用户名">
  <input type="password" name="password" placeholder="密码">
  <input type="submit" class="btn" value="登录" align="center">
</form>

我们使用HttpServletRequest的方法获取表单数据
因为是客户端发送请求,使用request.getParameter(“name”)来获取

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("utf-8");
        String account = request.getParameter("account");
        String password = request.getParameter("password");
        System.out.println(account);
        System.out.println(password);
    }

这样一来就能够获得表单数据
==值得一提的是复选框提交的数据使用getParameterValues来获得,使用字符串数组来接收:

String []str = request.getParameterValues("name");

Servlet路径跳转

<!--使用相对路径访问HelloServlet -->
    <!-- /servlet/HelloServlet 第一个/表示服务器的根目录 -->
    <a href="servlet/HelloServlet">访问HelloServlet!</a><br>
    <!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
    <a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>
    <!--表单中action的URL地址写法,与超链接方式完全相同。 -->
    <a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>

MVC

MVC模式即Model、View、Controller,是软件开发过程中比较流行的设计思想,旨在分离模型,控制,视图。是一种分层思想的体现。

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

在这里插入图片描述

1、View 传送指令到 Controller
2、Controller 完成业务逻辑后,要求 Model 改变状态
3、Model 将新的数据发送到 View,用户得到反馈

所有通讯都是单向的

在这里插入图片描述

这篇关于JavaWeb学习--JavaBean与Servlet的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!