ZCMUJavaWeb期末复习笔记
JavaWeb期末复习笔记(由老师上课转述)含19个必会知识点6个预测简答题
知识点
1.JavaEE三大组件
答:Java EE平台主要提供了以下3类Java EE组件
客户端组件、Web组件、EJB组件。
2.提示信息在login如何显示
<%提示信息%>
如:<%=String字符串%>
3.哪些技术是静态开发,动态开发,哪些是客户端技术,哪些是服务端技术?
答:静态开发:h5+c3+js
动态开发:asp,.net,jsp
客户端技术:html5,css3,javascript,ajax
服务端技术:jsp
4.JSP区分大小写吗?
区分大小写
5.page虚拟目录和物理目录
答:物理目录:Tomcat根目录下的webapps目录,
虚拟目录:在tomcat安装目录下conf/catalina/localhost文件夹下新建一个.xml文件进行配置即可
6.java应用程序打包和部署
答:导入包.jar,打包成.war
7.静态页面基本标签
答:文本框、下拉框、文本与段落标签、列表标签、超链接标签、图像和动画标签
8.JSP全称
答;Java Server Page
9.JSP指令标记有哪些?include page要懂作用/注意点
答:jsp包括page指令、include指令、taglib指令。
常用的有page与include,其中page有两个属性language与import而include指令有file属性,静态插入一个文件.
10.include与forward指令区别
地址栏区别,前者包含一个文件,后者停止当前页面执行转向另一个网页,而地址栏不发生变化。
11.session是什么?
答:对象可以创建它的jsp页面共享相同的http会话的任意一个jsp中被访问
12.jdbc驱动程序放在哪里?
放在WEB-INF中lib目录下
13.javabean的生命周期用什么属性?
scope
14.usebean动作标记要注意什么问题?
必须有无参构造函数
15.getProperty的属性
必须有get方法
16.servlet配置方式
一种是在web配置文件web.xml,另一种是直接在Servlet程序源代码中采用注释配置
17.servlet常用对象与方法
out/request/responsession/application/config/exception
18.HttpServletRequest/HttpServletResponse/HttpSession/ServletContext在哪个包里
javax包里
19.servlet生命周期
每个用户第一次请求创建servlet;包括初始化、调用、销毁。
创建Servlet对象后----.初始化(调用1init()方法)---->处理响应客户端的请求(调用service()方法)----->销毁(调用destroy()方法)最后由JVM进行垃圾回收
简答题
1.jsp基本元素和语法程序片,声明标志、表达式、注释格式它们的功能是什么?
答;JSP声明–<%!声明变量、方法和类 %>,
JSP表达式–<%=表达式%>返回String类型的结果值,并将结果值输出到浏览器
JSP代码块—<% 符合java语法的代码块 %>
JSP注释–<%–要添加的文本注释–%>
2.MVC开发模式
JSP一般用于编写用户界面信息显示,充当视图层角色;Servlet主要用来扮演任务的执行者,一般充当控制层作用,JavaBean主要实现业务逻辑的处理,充当模型层角色。
3.JSP、Servlet、JavaBean的作用关系
JSP主要完成信息的提交和显示,Servlet主要完成对请求数据的获取与处理,javaBean主要用于业务处理并实现数据的存储。
4.javabean编写,三大标记语法作用、属性
usebean:格式:<jsp:useBean id="对象名" class="类名" scope="有效范围"/>
属性: class、id、scope
功能: 在指定作用范围内,调用由class所指定类的无参构造方法创建对象实例,若该对象在该作用范围内已存在,则不生成新对象,而是直接使用.
setproperty:<jsp:setProperty name="beanname" property="propertyname" value="beanvalue" />
属性: name、property、value
功能: 给相应属性赋值
getproperty:<jsp:getProperty name="benname" property="propertyname"/>
属性: name,property
功能: 获取JavaBean对象指定属性的值.
5.什么是内置对象?有哪些?作用与生命周期
答:为了便于保存数据信息保存,传递,获取等操作application:作用域application,功能:允许jsp页面与包括在同一应用程序中的任何web组件共享信息。
config:作用域page。功能:允许将初始化数据传递给一个jsp页面
exception:page,含有只能由指定的jsp错误处理访问的异常数据
out:page,提供对输出流的访问
page:page,代表jsp页面对应的servlet类实例
pageContext:page,是jsp页面本身的上下文,提拱了唯一一组方法管理来具有不同的作用域属性
request:request,提供对请求数据访问,同时还提供用于加入特定请求数据上下文
response:page,该对象用来向客户端输入数据
session:session,用来保存在服务端与一个客户端之间需要保存的数据,当客户端关闭网站所有网页时,session变量会自动消失。
6.jsp动作标记 有哪些。语法格式和作用 注意什么?
答:
<jsp:include>
格式: <jsp:include page=“文件名字”/>
功能 :当前JSP页面动态包含一个文件,即将当前JSP页面
<jsp:forward>
格式: <jsp:forward page=“文件名字”/>
功能 :从该指令处停止当前页面继续执行,而转向执行page属性给定的html或jsp页面,但浏览器地址栏不发生变化。
<jsp:param>
格式: <jsp:param name=“变量名称” value=“变量值1”/>
功能: 将param标签中变量值传递给要跳转到的文件
7.application 对象,request对象,session对象区别
- session 对象与用户对话相关,不同用户的session是完全不同的对象,在session中设置的属性只是在当前客户的会话范围有效,客户超过保存时间不发送请求时,session对象将被回收。
- 所有访问同一网站的用户都有一个相同的application对象,只有关闭服务器后,application对象中设置的属性才被收回。
- 当客户端提交请求时,才创建request对象,当返回响应处理后,request对象自动销毁。
代码题:登录
代码题上课老师提了一手,说登录,登录的方式有很多,第一种jsp+servlet或者javabean,重点掌握第一种方式,因为第二种方式有一定代码量
1.第一种方式–javaBean模式
这种方式纯纯jsp模式,一般考试考一下。只需要写两个jsp文件即可。
- Login.jsp
- Loginprocess.jsp
<%@ page language="java"
pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String message = request.getParameter("message");
if(message == null)
message = "";
%>
<%= message %>
<form action="register" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="confirm"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="男"> 男
<input type="radio" name="sex" value="女"> 女
</td>
</tr>
<tr>
<td>兴趣:</td>
<td>
<input type="checkbox" name="hobby" value="爬山">爬山
<input type="checkbox" name="hobby" value="钓鱼">钓鱼
</td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
另一个LoginProcess.jsp
<%@ page language="java"
pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8"
import="java.util.*"
%>
<jsp:useBean id="user" class="com.why.User" scope="session"></jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username == null || "".equals(username)){
%>
<jsp:forward page="login.jsp">
<jsp:param name="message" value = "用户名不能为空"/>
</jsp:forward>
<%
return;
}
if(password == null || "".equals(password)){
%>
<jsp:forward page="login.jsp">
<jsp:param name="message" value = "密码不能为空"/>
</jsp:forward>
<%
return;
}
if(!"123".equals(password)&&!"admin".equals(username)){
%>
<jsp:forward page="login.jsp">
<jsp:param name="message" value = "密码错误"/>
</jsp:forward>
<%
return;
}
// 将用户信息加入session
//session.setAttribute("username",username);
%>
<jsp:setProperty property="userName" name="user" value="<%=username %>"/>
<%
response.sendRedirect("index.jsp");
%>
</body>
</html>
2.第二种方式–mvc模式
mvc模式比较简单,它的原理是我们需要首先编写一个java文件,里面包含用户名,密码
叫做User.java
package com.why.bean;
public class User {
private String userName;
private String password;
private String sex;
private String hobby;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
}
编写LoginServlet.java,是对登录进行判断的java,名字叫做LoginServlet.java
package com.why.servlet;
import com.why.bean.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "loginServlet", urlPatterns = "/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username == null || "".equals(username)){
request.setAttribute("message","用户名不能为空");
request.getRequestDispatcher("login.jsp").forward(request,response);
return;
}
if(password == null || "".equals(password)){
request.setAttribute("message","密码不能为空");
request.getRequestDispatcher("login.jsp").forward(request,response);
return;
}
if(!("123".equals(password)&&"admin".equals(username))){
request.setAttribute("message","用户名或密码错误");
request.getRequestDispatcher("login.jsp").forward(request,response);
return;
}
User user = new User();
user.setUserName("admin");
request.getSession().setAttribute("user",user);
response.sendRedirect("index.jsp");
}
}
最后,编写一个login.jsp
<%@ page language="java"
pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8"
import="java.util.*"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String message = (String)request.getAttribute("message");
if(message == null)
message = "";
%>
<%= message %>
<form action="login" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录"></td>
</tr>
</table>
</form>
<a href="reg.jsp">注册</a>
</body>
</html>
总结mvc模式,
- 编写User.java
- 编写校验LoginServlet.java
- 显示界面:login.jsp
更多推荐




所有评论(0)