Java EE考点复习
Java EE
一、JavaEE概述
javaEE结构的软件系统分层
从逻辑上分:表示层、业务层、数据持久层
分布式系统开发的优点
- 基于面向对象设计思想的多层结构
- 超强的移植性与复用性
- 侧重于Web应用模式的设计,支持分布式开发
- 集成了众多的信息技术,称为一个功能强大的开发平台
- 相对独立的开发体系
二、JSP
JSP作为最流行的Web技术的特点
- 一次编写,随处运行
- 可重用组件技术
- 标记化页面开发
- 对大型复杂Web应用支持良好
JSP页面内变量声明
在"<%!"和"%>"标记符之间声明变量。
<%! int a,b = 10,c; String tom = null,jerry = "love JSP"; Date date; %>
JSP的注释
HTML注释:
<!-- 注释内容 -->
JSP注释
<%-- 注释内容 --%>
page指令的用法
用来设置页面的全局属性
language属性:
<%@ page language="java"%>
import属性:
<%@ page import="java.io.*","java.util.Date"%>
contentType属性:
<%@ page contentType="text/html;charset=GB2312"%>
session属性:
<%@ page session="false"%>
errorPage属性:
处理错误的procExcp.jsp:
<html> <head> <meta charset="utf-8"> <title>Error Page</title> </head> <body> <center> <h1><front color=red>出错啦!</front></h1> </center> <p> 怎么这么巧!您访问的页面正在维护中... </p> </body> </html>
产生错误的errorPage.jsp:
<%@ page errorPage="procExcp.jsp"%> <%!int i = 0;%> <%=7/i%> errorPage.jsp: <%@ page isErrorPage="true"%> <% =exception%>
存在0被除的错误异常,根据第一行的代码,会重定向到procExcp.jsp文件;
include指令
<%@ include="test.html"%>
动作组件
<jsp:forward>
:从当前页面转向另一个页面文件。
<jsp:forward page="filename">
与include动作组件不同的是:forward动作会让当前页面完全显示所引入的页面,不显示自己的页面。
获取用户输入信息
获取信息的jsprequest.jsp
<%@ page language="java" contentType="text/html" pageEncoding="gb2312" %> <html> <head> <title>request中的getParameter()方法</title> </head> <body> <form action="show.jsp" method="POST" name="form"> 姓名:<input type="text" name="namme" /><br> 性别:<input type="text" name="sex"/><br> 年龄:<input type="text" name="age"/><br> <input type="submit" value="提交" name="submit"> </form> </body> </html>
显示信息的show.jsp
<%@ page language="java" contentType="text/html" pageEncoding="gb2312" %> <html> <head> <title>显示用户信息</title> </head> <body> <%-- 在这里设定request得到的参数的字符编码,否则中文会出现乱码 --%> <% request.setCharacterEncoding("gb2312");%> 得到用户输入的信息:<br> <font color="red"> 姓名:<%=request.getParameter("name")%><br> 性别:<%=request.getParameter("sex")%><br> 年龄:<%=request.getParameter("age")%><br> </font> 获取按钮标记名: <font color="blue"> <%= request.getParameter("submit")%> </font> </body> </html>
exception对象
exception对象是用来对异常做出相应处理的对象。要使用该内置对象,必须在page命令中设定<%@ page isErrorPage="true"%>,否则编译时会出现错误。
方法 | 说明 |
---|---|
String getMessage() | 返回错误信息 |
void printStackTrace() | 以标准错误的形式输出一个错误和错误的堆栈 |
void toString() | 以字符串的形式返回对异常的描述 |
void printStackTrace() | 打印出Throwable及其call stack trace信息 |
exceptionsource.jsp
<%@ page errorPage="exceptionShow.jsp" %> <%@ page contentType="text/html;charset=gb2312"%> <% //计算结果 String result = ""; String action = request.getParameter("action"); if(action!=null){ int n =(new Integer(request.getParameter("number"))).intValue(); result = String.valueOf(100/n); } %> <html> <head> <title>Exception实例</title> </head> <body> <form name="exception" method="post" action="exceptionsource.jsp?action=submit"> 请输入一个数:<input name="number" value=""><input type="submit" value="提交"><br> 100除以该数字得:<%=result%> </form> </body> </html>
exceptionShow.jsp
<%@ page contentType="text/html" pageEncoding="UTF-8"%> <%@ page isErrorPage="true"%> <html> <head> <title>异常显示页面</title> </head> <body> 这里是错误页面的信息: <br> <% out.println("exception.toString():"); out.println("<br>"); out.println(exception.toString()); out.println("<p>"); out.println("exception.getMessage():"); out.println("<br>"); out.println(exception.getMessage()); %> </body> </html>
输入0,点击提交后,会自动跳转到exceptionShow.jsp页面,并显示错误信息。
这里是错误页面的信息: exception.toString(): java.lang.ArithmeticException: / by zero exception.getMessage(): /by zero
逻辑运算符
EL支持的逻辑运算符包括与(&&)、或(||)、非(!)等。在EL中可以使用and、or和not来代替。
${x < 7 && y > 0 || !z}
EL逻辑运算的优先级低于关系运算
逻辑运算符优先级顺序为:非 > 与 > 或
也可以使用括号来改变优先级。
三、javabean
javabean概念
JavaBean是用于Java语言描述的软件组件模型,其实际上是一个类。这些类遵循一个接口格式,便于开发者完成函数命名、类的继承或实现等行为,相当于把类看作标准的JavaBean组件来进行构造和应用。
获取JavaBean对象成员属性
<jsp:useBean id="person" class="com.sec.Person" scope="page"></jsp:useBean> <% System.out.println(person.getName); %>
四、servlet
servlet工作流程及原理
①客户端通过对 URL地址的访问,向服务器发出请求。
②Web服务器根据请求内容将其转发给相应的Servlet。如果该Servlet 还没有被实例化,则服务器会将该文件放到Java 虚拟机上进行实例化。Servlet 会调用init()方法进行初始(该方法只在创建Servlet 时被调用)
③Servlet 接收请求并进行相应的业务处理。此时,Web 容器会产生一个新的线程调用Servlet的 service()方法。根据HTTP 请求的类型(GET、POST等),service()方法会调用相应的 doGet()、doPost()等方法进行处理。
④业务处理完毕后,Servlet 向 Web 服务器回信息,Web 服务器将得到的应答发送给客户端进行响应。
⑤结束 Servlet 实例。如果长时间没有请求某个 Servlet 实例,Web 容器将会把该实例移出内存。通过容器调用Servlet 的destroy()方法来完成这个动作。当然,如果是 Web程序被关闭,也会通过 destroy()方法来结束这个实例。
web.xml中的
<servlet-name>
标签
<?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>abc</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-name>FirstServlet</servlet-name> <servlet-class>com.sec.servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/FirstServlet</url-pattern> </servlet-mapping> </web-app>
五、JDBC
JDBC包含的接口和类
DriverManager、Connection、Statement、PreparedStatement及ResultSet。使用时引入java.sql.*;
- DriverManager用于管理JDBC驱动程序的服务类。
- Connection代表数据库的连接对象。
- Statement用于执行SQL语句的工具接口。
- PreparedStatement预编译的Statement对象。
- ResultSet结果集对象。
建立数据库连接的方法
//加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver").newInstance(); //设置连接字符串(主机名、端口、数据库名、用户名、密码等) String url = "jdbc:mysql://localhost:3306/studb?user=root&password=123456"; //建立数据库连接 Connection conn = DriverManager.getConnection(url);
六、MVC
MVC原理
使用MVC模式好处:
- 低耦合
- 低成本
- 好维护
MVC模式的优点:
- 具有多个视图对应一个模型的能力。
- 由于一个应用被分离为3层,因此有时改变其中的一层就能满足应用的改变。
- 控制层的管理能力更加有效。
- MVC模式有利于软件工程化管理。
MVC的不足:
- 增加了系统结构和实现的复杂性。
- 视图与控制器间联系紧密。
- 视图对模型数据的低效率访问。
- 一般高级的界面工具或构造器不支持MVC模式。
MVC设计模式中的视图
在Java web开发中,通常把servlet+JSP+JavaBean的模型称为Model2模型。基本划分如下:
- JavaBean作为模型,既可以作为数据模型来封装业务数据。又可以作为业务逻辑模型来包含应用的业务操作。
- JSP作为表现层,负责提供页面为用户展示数据。
- Servlet作为控制器,用来接收用户提交的请求,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法,请求模型进行更新。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现