Java EE考点复习

发布时间 2023-06-07 18:40:36作者: 苏弋吖

Java EE

一、JavaEE概述

javaEE结构的软件系统分层

从逻辑上分:表示层、业务层、数据持久层

分布式系统开发的优点

  1. 基于面向对象设计思想的多层结构
  2. 超强的移植性与复用性
  3. 侧重于Web应用模式的设计,支持分布式开发
  4. 集成了众多的信息技术,称为一个功能强大的开发平台
  5. 相对独立的开发体系

二、JSP

JSP作为最流行的Web技术的特点

  1. 一次编写,随处运行
  2. 可重用组件技术
  3. 标记化页面开发
  4. 对大型复杂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.*;

  1. DriverManager用于管理JDBC驱动程序的服务类。
  2. Connection代表数据库的连接对象。
  3. Statement用于执行SQL语句的工具接口。
  4. PreparedStatement预编译的Statement对象。
  5. 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模式好处:

  1. 低耦合
  2. 低成本
  3. 好维护

MVC模式的优点:

  1. 具有多个视图对应一个模型的能力。
  2. 由于一个应用被分离为3层,因此有时改变其中的一层就能满足应用的改变。
  3. 控制层的管理能力更加有效。
  4. MVC模式有利于软件工程化管理。

MVC的不足:

  1. 增加了系统结构和实现的复杂性。
  2. 视图与控制器间联系紧密。
  3. 视图对模型数据的低效率访问。
  4. 一般高级的界面工具或构造器不支持MVC模式。

MVC设计模式中的视图

在Java web开发中,通常把servlet+JSP+JavaBean的模型称为Model2模型。基本划分如下:

  1. JavaBean作为模型,既可以作为数据模型来封装业务数据。又可以作为业务逻辑模型来包含应用的业务操作。
  2. JSP作为表现层,负责提供页面为用户展示数据。
  3. Servlet作为控制器,用来接收用户提交的请求,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法,请求模型进行更新。