首页 > 编程语言 >Java EE考点复习

Java EE考点复习

时间:2023-06-07 18:44:35浏览次数:36  
标签:Web Java EE 考点 MVC jsp JSP Servlet 页面

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作为控制器,用来接收用户提交的请求,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法,请求模型进行更新。

标签:Web,Java,EE,考点,MVC,jsp,JSP,Servlet,页面
From: https://www.cnblogs.com/haojiacheng/p/17464258.html

相关文章

  • 关于Java中多线程
    基本概念什么是进程-->是操作系统资源分配和调度的最小(基本)单位(操作系统分配给当前进程一个内存区域供其使用)什么是线程-->是程序运行的基本单位(等待操作系统分配时间片让CPU执行该内存区域中的代码)进程和线程的关系-->一个进程可以存在多个线程线程是由进程创建的(寄......
  • java 接口
    为什么使用接口接口可以实现java中的“多继承”什么是接口接口的关键字是interface接口中的所有方法都是用抽象abstract修饰的;没有方法体;那个类要用这个接口就在那个类中写接口中的方法接口不能实例化,接口就是抽象的概念实现类中必须实现接口中的所有方法实现的关键字imple......
  • java多态
    多态的定义:父类引用指向子类对象实现多态的三个要素:1.编写具有继承关系的父类和子类publicclassDemoextendsTest2.子类重写父类方法重写的定义是子类和父类拥有相同方法名或者相同属性的方法3.使用父类的引用指向子类的对象符合这三个条件就可以使用多态多态的向上转......
  • java面试(30)- redis
    1:Redis支持的数据类型a)字符串keyvalb)hashkeynamefiledc)listkeyv1v2v3v3d)setkeyv1v2v3d)zsetkeysv2:Redis支持的事务3:为什么redis快 4:redis的优缺点1、优点a)数据类型丰富b)支持数据......
  • JAVA——时间类
    JAVA——时间类世界标准时间格林尼治时间简称GMT目前世界标准时间已替换为:原子钟中国标准时间:世界标准时间+8小时 时间单位换算1秒=1000毫秒1毫秒=1000微秒1微秒=1000纳秒 如何创建对象?Datedate=newDate();Datedate=newDate(指定毫秒值);如何修改时间......
  • 产生随机数 random.seed()
     importrandom#随机函数前不要seed()方法print('随机数0:',random.random())print('随机数000:',random.random())#随机数不一样#当seed()没有参数时,每次生成的随机数是不一样的random.seed()print('++++++++++seed()随机数:',random.random())random.seed()pr......
  • java中基本数据类型和包装数据类型
    基本数据类型和包装数据类型在Java中有着重要的区别和联系,对于Java程序员来说,熟悉这两种数据类型的特点和使用方法是非常必要的。 基本数据类型 Java中的基本数据类型一共有8种,分别为:-byte-short-int-long-float-double-char-boolean基本数据类型是指可以......
  • Deep One-Class Classification
    DeepOne-ClassClassifificationDeepSVDD(DeepSupportVectorDataDescription)训练一个神经网络,最小化包含数据表征的超球的体积(如图1所示)DeeoSVDD的目标函数soft-boundaryDeepSVDD输入空间\(\mathcal{X}\subseteq\mathbb{R}^d\)和输出空间\(\mathcal{F}\subs......
  • java微信公众号 推送消息
    WxConfig.java @Slf4j@ServicepublicclassWxConfig{@ResourceprivateWxClientwxClient;//appIdprivatestaticfinalStringappId="xxxx";//appIdSecretprivatestaticfinalStringappIdSecret="xxxx";privatestat......
  • java代码调用Python代码
    1,使用runtime调用Python脚本String[]arguments=newString[]{"E:\\ProgramFiles\\python.exe","E:\\wzCode\\signal.py",Arrays.toString(datas),String.valueOf(Num)};......