当前位置: 首页 > news >正文

Java自学第10课:JavaBean和servlet基础

目录

目录

1 JavaBean

(1)概念

(2)分类

(3)使用

2 servlet

(1)代码结构

(2)常用接口

(3)如何开发

1 新建servlet

2 配置


1 JavaBean

(1)概念

上节课我们讲了Jsp的基本开发流程和Jsp的内置对象,这种开发的实质是把java代码嵌入到html当中。这对复杂的项目是不可取的,而且也没有体现出面向对象的概念。

为了把业务逻辑封装起来,使用java代码封装为类,再用jsp调用,这种java类就是javabean组件。

下图为纯jsp开发模式

下图为java bean开发模式

说白了就是把字符串处理和数据库操作都交给javabean。

从eclipse上看,javabean的java内容被放到了src里,而jsp在web里。这很不一样。

写在src里做字符串和数据库的操作,感觉有点像是后端工作。jsp就变成了前端工作。

(2)分类

最开始java bean主要用于swing可视化开发,现在web开发其实都用不到了,所以web开发里都是用的非可视化java bean。这个概念了解一下就行。

(3)使用

java bean的使用主要依赖几个动作标签:<jsp:useBean><jsp:getProperty><jsp:setProperty>

下面通过个人信息管理的实例来分析

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%request.setCharacterEncoding("UTF-8");%><jsp:useBean id="person" class="com.lyq.bean.Person" scope="page"><jsp:setProperty name="person" property="*"/></jsp:useBean><table align="center" width="400"><tr><td align="right">姓 名:</td><td><jsp:getProperty property="name" name="person"/></td></tr><tr><td align="right">年 龄:</td><td><jsp:getProperty property="age" name="person"/></td></tr><tr><td align="right">性 别:</td><td><jsp:getProperty property="sex" name="person"/></td></tr><tr><td align="right">住 址:</td><td><jsp:getProperty property="add" name="person"/></td></tr></table>
</body>
</html>

首先用useBean来引入person类,然后对实例进行了*默认赋值。在这里实例获得了从上一页页面中form传来的参数。

之后在table控件中,通过getProperty来逐个填写。这样就显示在表中了。

2 servlet

servlet其实是基础。jsp就是解析为servlet运行的。其本质是按servlet规范写的java类。

(1)代码结构

通常说servlet就是指HttpServlet对象,在新建servelt时 其实就是新建1个java类,且继承于HttpServlet类。继承后可重写HttpServlet中的方法。

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {private static final long serialVersionUID = 1L;//初始化方法public void init() throws ServletException {}//处理HTTP Get请求public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}//处理HTTP Post请求public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}//处理HTTP Put请求public void doPut(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}//处理HTTP Delete请求public void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {}//销毁方法public void destroy() {super.destroy();}
}

1 初始化方法

2 get请求

3 post请求

4 put请求

5 delete请求

6 销毁方法

注意:上面这段代码没法运行,只是个框架。

(2)常用接口

servlet运行需要serveley容器支持。servlet对象实现了java.servlet.Servet接口。该接口包含5个方法。

当客户端请求到来时,service方法会处理。

此外还有:

servletConfig

HttpServletRequest

HttpServletResponce

GenericServlet

HttpServlet

(3)如何开发

创建有2种方式,1是普通java类,继承httpServlet,再在web.xml中配置注册

另1种是在eclipse中新建servlet。

1 新建servlet

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/stest1")
public class stest1 extends HttpServlet {// 序列化private static final long serialVersionUID = 1L;// 构造方法public stest1() {super();}// getprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.getWriter().append("Served at: ").append(request.getContextPath());}// postprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

2 配置

需要在web.xml里配置三项:

<?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_4_0.xsd" version="4.0"><display-name>test2</display-name><servlet><servlet-name>MyServlet</servlet-name><servlet-class>test2.stest1</servlet-class></servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/servlet/stest1</url-pattern></servlet-mapping><welcome-file-list><welcome-file>servlet/stest1</welcome-file></welcome-file-list>
</web-app>

配置好后,运行tomcat,在网址里查看

可见,servlet也是网页打开,但页面没有后缀。

那么考虑一个问题,电商项目无法连接数据库,是不是也是这个配置问题?

http://www.lryc.cn/news/226637.html

相关文章:

  • AR打卡小程序:构建智能办公的新可能
  • Python环境安装、Pycharm开发工具安装(IDE)
  • 报时机器人的rasa shell执行流程分析
  • C#开发的OpenRA游戏之世界存在的属性UpdatesPlayerStatistics(2)
  • Ocelot:.NET开源API网关提供路由管理、服务发现、鉴权限流等功能
  • wsl [Ubuntu20.04.6] 安装 Hadoop
  • 2023华为ict网络赛道初赛(部分)试题
  • rabbitMq虚拟主机概念
  • 2-CentOS7.9下安装docker
  • 【已验证-直接用】微信小程序wx.request请求服务器json数据并渲染到页面
  • 如何提高小红书笔记的互动率
  • RabbitMQ 系列教程
  • 无感刷新token
  • 【Python大数据笔记_day06_Hive】
  • Netty--文件编程
  • SVN 服务器建立
  • iPhone或在2024开放第三方应用商店。
  • 《C和指针》笔记36:动态内存分配
  • C/S架构学习之基于UDP的本地通信(服务器)
  • excel如何加密(excel加密的三种方法)
  • 玩了个锤子游戏小程序搭建流程:探索深度与逻辑的结合
  • 召回率计算及影响因素
  • 在Qt中怎么由函数定义自动创建函数实现模板
  • 【算法】算法题-20231112
  • 目标检测YOLO实战应用案例100讲-基于多目标追踪的交通场景异常检测(续)
  • 最新支付宝转卡码生成之转账源代码(隐藏部分卡号)
  • 聊天机器人框架Rasa资源整理
  • 魔搭社区LLM模型部署实践, 以ChatGLM3为例(一)
  • 25期代码随想录算法训练营第十四天 | 二叉树 | 层序遍历(10道题)、226.翻转二叉树 、101.对称二叉树 2
  • ubuntu cp210x(USB转串口)驱动安装教程