一,简答题

1、Servlet的体系结构

 1)Servlet接口,规定了必须由Servlet类实现并且由Servlet引擎识别和管理的方法集2)GenericServlet抽象类,提供了除service()方法之外其他有关Servlet生命周期的方法3)ServletConfig接口,获取Servlet初始化参数和ServletContext对象4)HttpServlet抽象类,在原有Servlet接口上添加了对HTTP协议的处理,比Servlet功能更强大5)HttpServletRequest接口,用于封装HTTP请求信息6)HttpServletResponse接口,用于封装HTTP响应消息

02、Servlet的生命周期

 1)实例化 如果Servlet配置了load-on-startup,则服务器在启动时自动实例化该Servlet,如果没有配置,则在服务器启动后,客户首次向Servlet发出请求时,实例化该Servlet。2)初始化  Servlet实例化后,Servlet容器将调用Servlet的init方法来对Servlet实例进行初始化,如果初始化成功,Servlet在Web容器中会处于服务可用状态;如果初始化失败,Servlet容器会销毁该实例;当Servlet运行出现异常时,Servlet容器会使该实例变为服务不可用状态。3)请求处理  服务器接收到客户端请求,会为该请求创建“请求”对象和“响应”对象,并调用service()方法,service()方法再调用其他方法来处理请求。在Servlet生命周期中,service()方法可能被多次调用。当多个客户端同时访问某个Servlet的service()方法时,服务器会为每个请求创建一个线程,这样可以并行处理多个请求,减少请求处理的等待时间,提高服务器的响应速度。4)服务终止  当Servlet容器需要终止Servlet,它会先调用Servlet的destroy()方法使其释放正在使用的资源。在调用destroy()方法之前,必须让当前正在执行service()方法的任何线程完成执行。在destroy()方法完成后,Servlet容器必须释放Servlet实例以便被垃圾回收。

03、转发与重定向的区别

 重定向和请求转发都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别:1)请求转发只能将请求转发给同一个Web应用中的组件;而重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,或者重定向到其他站点的资源;2)请求转发过程结束后,浏览器地址栏保持初始的URL地址不变;重定向结束后,浏览器地址栏的URL会发生改变,由初始的URL地址变成重定向的目标URL; 3)请求转发调用者与被调用者共享相同的request、response对象,它们属于同一个访问的请求和响应过程;重定向调用者与被调用者使用各自的request对象和response对象,它们属于两个独立访问的请求和响应过程

04、include指令与include动作的区别

 1)共同点:include指令元素和include动作元素的作用都是实现包含文件代码的复用。2)不同点1:include指令元素是在翻译阶段就引入所包含的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,优点是页面的执行速度快。3)不同点2:include动作元素是在JSP页面运行时才引入包含文件所产生的应答文本,被包含的文件在逻辑和语法上独立于当前JSP页面,优点是可以使用param子元素更加灵活地处理所需要的文件,缺点是执行速度要慢一些。

05、JSP的脚本元素的组成及功能

 1)脚本元素允许用户将小段的代码添加到JSP页面中,包括脚本、表达式、声明和注释2)脚本,<% %>,是指JSP中的代码部分,在这个部分中可以使用几乎任何Java的语法3)表达式,<%= %>,是做一种简化的输出形式4)声明,<%! %>,定义一个或多个变量和方法5)注释,<%-- --%>,编译时忽略其内容,在客户端看不到

06、JSP的指令元素的组成及功能

 1)指令用来向容器提供编译信息,并不向客户端产生任何输出,只在当前页面中有效。2)page指令一般位于JSP页面的开头部分,用来描述和页面相关的信息3)include指令在页面翻译期间引入另一个文件4)include指令包含文件时,必须保证新合并生成的文件符合JSP语法规则5)taglib指令用于指定JSP页面所使用的标签库,通过该指令可以在JSP页面中使用标签库中的标签

07、JSP的动作元素的组成及功能

 1)<jsp:include>动作用于在页面被请求时引入一个文件2)<jsp:forward>动作用于把请求转发到另一个页面3)<jsp:useBean>动作用于查找或实例化一个JavaBean4)<jsp:setProperty>动作用于设置JavaBean的属性5)<jsp:getProperty>动作用于输出某个JavaBean的属性

08、JavaBean的规范

 1)JavaBean是一个公开的(public)类,以便被外部程序访问;2)具有一个无参的构造方法,以便被外部程序实例化时调用;3)提供setXxx()方法和getXxx()方法,以便让外部程序设置和获取其属性。

09、JSP的page指令中的import、contentType、pageEncoding、errorPage、buffer属性的功能

 1)import:指定导入的Java软件包或类名列表,若有多个类,中间用逗号隔开2)contentType:指定MIME类型和JSP页面响应时的编码方式,默认为“text/html;charset=ISO8859-1”3)pageEncoding:指定JSP文件本身的编码方式,例如pageEncoding="UTF-8"4)errorPage:设定JSP页面发生异常时重新指向的页面URL,指向的页面文件要把isErrorPage设成true5)buffer:指定输出流是否需要缓冲,如果设成true则当输出缓冲区满的时候

10、@WebServlet注解常用的属性

 1)name       Servlet的名字,一般与Servlet的类名相同2)urlPatterns   指定URL匹配模式,可以是地址映射(/servlet1)、目录映射(/servlet/*)、扩展名映射(*.action)3)value      等价于urlPatterns,两个属性不能同时使用4)loadOnStartup  指定Servlet的加载顺序 未指定或<0,表示该Servlet第一次被请求时才加载 >=0,表示应用启动时加载该Servlet,值越小,越先加载,原则上不同Servlet值不同5)initParams  一组Servlet初始化参数

11、JSP的9大内置对象

 1)request:请求对象,提供客户端HTTP请求数据的访问2)response:响应对象,用来向客户端输出响应3)out:输出对象,提供对输出流的访问 4)session:会话对象,用来保存服务器与每个客户端会话过程中的信息 5)application:应用程序对象,用来保存整个应用环境的信息6)pageContext:页面上下文对象,用于存储当前JSP页面的相关信息7)config:页面配置对象,JSP页面的配置信息对象 8)page:当前JSP页面对象,即this 9)exception:异常对象,用于处理JSP页面中的错误

12、JSP的四种作用域及其生命周期

 1)页面域(page scope),存储在页面域的对象只对于它所在页面是可访问的。2)请求域(request scope),请求域的生命周期是指一次请求过程,包括请求被转发(forward)或者被包含(include)的情况。存储在请求域中的对象只有在此次请求过程中才可以被访问。  3)会话域(session scope),会话域的生命周期是指某个客户端与服务器所连接的时间,存储在会话域中的对象在整个会话期间(可能包含多次请求)都可以被访问。4)应用域(application scope),应用域的生命周期是指从服务器开始执行服务到服务器关闭为止,存储在应用域中的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问。

13、JSP执行过程

 1)客户向服务器发送JSP页面请求(request);2)容器接收到请求后检索对应的JSP页面,如果该JSP页面(或被修改后的JSP页面)是第一次被请求,则容器将此页面中的静态数据(HTML文本)和动态数据(Java脚本)全部转化成Java代码,使JSP文件翻译成一个Java文件,即Servlet;3)容器将翻译后的Servlet源代码编译形成字节码文件(.class),对于Tomcat服务器而言,生成的字节码文件默认存放在“<Tomcat安装目录>\work目录下”;4)编译后的字节码文件被加载到容器内存中执行,并根据用户的请求生成HTML格式的响应内容;5)容器将响应内容即响应(response)发送回客户端。

14、Session对象的创建与销毁(即何时创建Session对象,何时销毁)

创建:1)对Servlet而言,第一次执行request.getSession()时,创建Session 2)对JSP而言,默认情况下,客户端第一次访问该JSP时,创建Session
销毁:3)显示调用HttpSession.invalidate()方法 4)Session超时  5)服务器关闭或服务停止

15、EL的隐含对象

 pageContext:对应于JSP页面中的pageContext对象 pageScope:代表page域中用于保存属性的Map对象 requestScope:代表request域中用于保存属性的Map对象 sessionScope:代表session域中用于保存属性的Map对象 param:表示一个保存了所有请求参数的Map对象 paramValues:表示一个保存了所有请求参数的Map对象,返回的是一个string[]header:表示一个保存了所有http请求头字段的Map对象 headerValues:表示一个保存了所有http请求头字段的Map对象,返回string[]数组  cookie:表示一个保存了所有cookie的Map对象  initParam:表示一个保存了所有web应用初始化参数的map对象

16、jstl核心标签库中常见的标签

 通用标签:<c:out>、<c:set>、<c:remove>、<c:catch> 条件标签:<c:if>、<c:choose>、<c:when>、<c:otherwise> 迭代标签:<c:forEach>、<c:forTokens> URL标签:<c:url> 、<c:redirecrt>

17、过滤器的生命周期

 1)加载和实例化  Web容器启动时,会根据@WebFilter属性filterName所定义的类名的大小写拼写顺序,或者web.xml中声明的Filter顺序依次实例化Filter。2)初始化 Web容器调用init(FilterConfig config)方法来初始化过滤器。容器在调用该方法时,向过滤器传递FilterConfig对象。实例化和初始化的操作只会在容器启动时执行,并且只会执行一次。3)doFilter()方法的执行  当客户端请求目标资源的时候,容器会筛选出符合过滤器映射条件的Filter,并按照@WebFilter属性filterName所定义的类名的大小写拼写顺序,或者web.xml中声明的filter-mapping的顺序依次调用这些过滤器的doFilter()方法。4)销毁  Web容器调用destroy()方法指示过滤器的生命周期结束。在这个方法中,可以释放过滤器使用的资源。

18、XMLHttpRequest对象的readyState的五种状态和status的五种状态

readyState的五种状态0、初始状态,未调用send()方法   1:调用send()方法,开始发送请求2:send()完毕,客户端数据发送到服务器,服务器响应,客户端接收服务器的响应内容 3:开始解析响应内容  4:解析响应内容完毕,客户端可以查看响应结果
status的五种状态:1xx:信息提示  2xx:成功,常用200 3xx:重定向 4xx:客户端错误 5xx:服务器错误

19、Cookie的分类

 1)cookie在浏览器第一次访问服务器时生成,并通过响应带回到浏览器。如果访问servlet时,即没有new Cookie()并添加到响应对象,也没有显式request.getSession()则不生成cookie2)根据cookie的setMaxAge(单位为秒,<0、>0、=0)区分为:临时cookie,setMaxAge的参数<0或者没有执行setMaxAge,cookie存储在浏览器内存中,浏览器关闭即失效永久cookie,setMaxAge的参数>0,cookie以文件形式存储在操作系统中,超过最大值时失效 setMaxAge的参数=0时,删除该cookie3)浏览器再次访问服务器的时候,根据cookie的setDomain、setPath、setMaxAge共同确定是否携带该cookie,如果携带该cookie,则取该cookie的name和value,其余的domain、path、maxage都不带(为了减少数据量)这也解释了服务器取到cookie以后,所有cookie的name、value有值,其余domain、path为空、maxage为-14)默认情况下,创建Cookie时没有设置路径,该Cookie只能被当前目录及子目录应用访问。

20、当客户端访问服务器页面(html、jsp)时,是否会创建Session对象,为什么

 1)访问html等静态资源,因为不会被编译为Servlet,所以不创建Session对象。2)第一次访问jsp时,服务器会自动为其创建一个session,并把其id发送给客户端,以后客户端接收到请求本应用中其他资源的时候,会自动在请求头上添加:Cookie:JSESSIONID=客户端第一次拿到的session ID   这样,服务器在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用。

二,看编程题

 登录页面:前端:<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><!DOCTYPE html ><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><form action="login" method="post" ><input type="text" name="name" value="admin"><br><input type="password" name="pwd" value="123"><br><input type="submit">   </form></body></html>servlet:package com.qst.abc;import com.qst.bean.User;import com.qst.db.DbUtil;@WebServlet("/login")        public class MyServlet1 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = request.getParameter("name");        String pwd = request.getParameter("pwd");try {Connection conn = DbUtil.getConn();String sql = "select * from user where username=? and pwd=?";PreparedStatement pstm = conn.prepareStatement(sql);pstm.setObject(1, name);pstm.setObject(2, pwd); ResultSet rs = pstm.executeQuery();User u = null;while(rs.next()) {u = new User();u.setId(rs.getInt("id"));u.setUserno(rs.getString("userno"));u.setUsername(rs.getString("username"));u.setPwd(rs.getString("pwd"));}if(u == null) {response.getWriter().write("info error");}else {response.sendRedirect("main.jsp");}   } catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally{DbUtil.close(rs,pstmt,conn);}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}user:public class User {private int id;private String userno;private String username;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserno() {return userno;}public void setUserno(String userno) {this.userno = userno;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}注册页面:前端:<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><form action="register" method="post" >姓名<input type="text" name="name"><br> 密码<input type="password" name="pwd"><br> <input type="submit"></form></body></html>servlet:package com.qst.servlet;@WebServlet("/register")public class MyReg extends HttpServlet {private static final long serialVersionUID = 1L;public MyReg() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String name = request.getParameter("name");String pwd = request.getParameter("pwd");User u = new User();u.setUsername(name);u.setPwd(pwd);UserDao ud = new UserDao();boolean flag = ud.add(u);if(flag) {response.getWriter().write("添加成功");System.out.println("添加成功");}else {response.getWriter().write("添加失败");System.out.println("添加失败");}  }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}user:public class User {private int id;private String username;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}userdao:public class UserDao {public boolean add(User u) {Connection conn = null;PreparedStatement pstm = null;try {conn = DBUtil.getConnection();           String sql = " insert into user(username,pwd) values(?,?) ";pstm = conn.prepareStatement(sql);          pstm.setObject(1, u.getUsername());pstm.setObject(2, u.getPwd());           return pstm.executeUpdate()>0;} catch (SQLException e) {e.printStackTrace();return false;}finally {DBUtil.closeJDBC(null, pstm, conn);}}public User queryByNamePwd(String name, String pwd) {Connection conn = null;PreparedStatement pstm = null;ResultSet rs = null;try {conn = DBUtil.getConnection();            String sql = " select * from user where username=? and pwd=? ";pstm = conn.prepareStatement(sql);         pstm.setObject(1, name);pstm.setObject(2, pwd); rs = pstm.executeQuery();User u = null;while(rs.next()) {int id = rs.getInt("id");String str1 = rs.getString("username");String str2 = rs.getString("pwd");u = new User();u.setId(id);u.setUsername(str1);u.setPwd(str2);                       }           return u;} catch (SQLException e) {e.printStackTrace();return null;}finally {DBUtil.closeJDBC(rs, pstm, conn);}}}分页查询:
jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.qst.enity.User" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户管理界面</h1> <table border="1px" cellspacing="0" align="center"><tr><td>id</td><td>name</td><td>pwd</td><td>email</td></tr><c:forEach items="${AllUsers.pageData}" var="x"><tr><td>${x.id }</td><td>${x.name }</td><td>${x.pwd }</td><td>${x.email }</td></tr></c:forEach></table><table  align="center"><tr><td>当前${AllUsers.currentPage}/${AllUsers.totalPage}页</td><td><a href="UserServlet?currentPage=1">首页</a></td><td><a href="UserServlet?currentPage=${AllUsers.currentPage-1}">上一页</a></td><td><a href="UserServlet?currentPage=${AllUsers.currentPage+1}">下一页</a></td><td><a href="UserServlet?currentPage=${AllUsers.totalPage}">尾页</a></td></tr></table>
</body>
</html>
---------------------------------------------------------------------------------------------------
pageBean:
public class PageBean<T> {private List<T> pageData;     //0、查询到的分页结果集private int totalCount = 0 ;  //1、总记录数private int pageSize = 5;      //2、每页记录数       private int totalPage = 1;     //3、总页数private int currentPage = 1;    //4、当前页private int startNum = 1;       //5、开始行号:(当前页-1)*每页记录数public List<T> getPageData() {return pageData;}public void setPageData(List<T> pageData) {this.pageData = pageData;}public int getTotalCount() {return totalCount;}public void setTotalCount(int totalCount) {this.totalCount = totalCount;}public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;} public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalPage() {totalPage = totalCount / pageSize;if (totalCount == 0 || totalCount%pageSize != 0)  totalPage++;return totalPage;}    public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public int getStartNum() {return (this.currentPage-1)*this.pageSize;}public void setStartNum(int startNum) {this.startNum = startNum;}
}
----------------------------------------------------------------------------------------------------
dao :
public PageBean<User> queryAll2(String currentPage) {PageBean<User> pageBean = new PageBean<>();pageBean.setTotalCount(getTotalCount());int no;try {no = Integer.parseInt(currentPage);if(no<1)no = 1;else if(no>pageBean.getTotalPage())no = pageBean.getTotalPage();}catch (Exception e) {no = 1;}       pageBean.setCurrentPage(no);List<User> users = new ArrayList<>();try {conn = DbUtil.getConn();    String sql = " select * from user limit ?,? ";pstm = conn.prepareStatement(sql);pstm.setObject(1, pageBean.getStartNum());pstm.setObject(2, pageBean.getPageSize());ResultSet rs = pstm.executeQuery();while(rs.next()) {User u = new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setPwd(rs.getString("pwd"));u.setEmail(rs.getString("email"));u.setRole(rs.getString("role"));users.add(u);}            pageBean.setPageData(users);return pageBean;} catch (Exception e) {e.printStackTrace();return null;} finally {DbUtil.close(rs,pstm,conn);}  }
servlet:@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {private static final long serialVersionUID = 1L;public UserServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String pageNoStr = request.getParameter("currentPage");UserDao us = new UserDao();PageBean<User> users = us.queryAll2(pageNoStr);request.setAttribute("AllUsers", users);request.getRequestDispatcher("userManage.jsp").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}文件的上传前端:<%@ 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><form action="UploadServlet" enctype="multipart/form-data" method="post" ><input type="file" name="f1" ><input type="submit"></form></body></html>servlet:@WebServlet("/UploadServlet")@MultipartConfigpublic class UploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public UploadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {0、这种写法会把所有上传的文件都存为1.txt,覆盖Part p = request.getPart("f1");  p.write("c://temp//1.txt");
//                  1、request取上传文件信息Part p = request.getPart("f1");
//                  2、从part中取文件名String header =  p.getHeader("content-disposition");
//                  3、不同浏览器的p.getHeader返回格式不同,需重新提取文件名String fileName = getFileName(header);
//                  4、取文件的扩展名String suffix = fileName.substring(fileName.lastIndexOf("."));
//                  5、为防止文件重名导致覆盖,使用时间字符串重新拼接文件名String str = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());        fileName = fileName.substring(0,fileName.lastIndexOf("."))+"_"+str+suffix;
//                  6、把上传文件的内容写入服务器p.write("c://temp//"+fileName);       response.getWriter().write("upload ok");  }private String getFileName(String header) {// 把form-data; name="myfile"; filename="abc.doc"切成3份String[] temp1 = header.split(";");    // 把filename="abc.doc"切成2份   String[] temp2 = temp1[2].split("=");// 从abc.doc或者E:\abc.doc中提取文件名  return temp2[1].substring(temp2[1].lastIndexOf("\\") + 1).replaceAll("\"", "");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}-------------------------------------------------------------------------------------------------------------------------------------------------------------------        1、生成验证码的Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{//      1、定义验证码底图宽高int width = 80;int height = 30;//      2、创建验证码底图BufferedImage image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//        3、取验证码底图的画笔,用来画底图、写验证码Graphics g = image.getGraphics();//       4、设置画笔颜色g.setColor(Color.BLUE);//       5、画黑色的验证码底图g.fillRect(0, 0, width, height);//       7、定义验证码集合String[] codes = {"0","1","2","3","4","5","6","7","8","9"};StringBuilder sb = new StringBuilder();Random r = new Random();//        8、修改画笔颜色,准备往底图上写验证码g.setColor(Color.WHITE);//        9、随机生成4位验证码,写入底图并存入字符串for(int i=0; i<4; i++) {int n = r.nextInt(10);String code = codes[n];//            10、验证码写入底图g.drawString(code, 20*i, 15);//           11、验证码存入字符串sb.append(code);}//      12、验证码字符串写入session,即存到服务器端,备验证使用request.getSession().setAttribute("checkcode", sb.toString());//        13、设置响应内容为图片response.setContentType("image/jpeg");    //      14、设置http报头,不允许缓存response.setDateHeader("expires", 0);response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");//      15、验证码写入客户端ImageIO.write(image, "jpeg", response.getOutputStream());
}2、登录界面
<%@ 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>
<script type="text/javascript">function reCode(){document.getElementById("chkcode").src= "ChkcodeServlet?x="+new Date();}
</script>
</head>
<body><form action="LoginServlet" method="post"><input type="text" name="user" placeholder="用户名"><br><input type="password" name="pwd" placeholder="密码"><br><input type="text" name="chkcode" placeholder="验证码"><img id="chkcode" title="点击刷新" onclick="reCode()" src="ChkcodeServlet" ><br><input type="submit"></form>
</body>
</html>

Java web期末相关推荐

  1. 分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等

    分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等 我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servl ...

  2. java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)

    学生成绩管理系统 一.实验目的 为了更好的学习理解JavaWeb,创建了此系统.此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识.Java w ...

  3. java web期末_javaweb期末考试模拟题

    javaweb期末考试模拟题  单选题(每小题2分,共30分)隐藏/显示 o 1. 下列关于 HTML 的说法不正确的是______. [2.0 分]  A. 标签的属性可用单引号也可用双引号  ...

  4. java web期末考试试卷_2016年大学java期末考试试题(10)

    A. 主键顺序为数据的物理顺序 B. 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引 C. 主键每个表只能有一个,唯一索引可以多个 D. 主键不能空,唯一索引可以为空 36. HTTP/1.1 ...

  5. java实验项目代码_java web 期末项目实验源码20套,自用学习非常不错!

    分享java web 期末项目实验源码20套,自用学习非常不错! 我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动 ...

  6. Java Web 程序设计期末复习重要知识点总结

    目录 前言 一.Java Web是什么? 二.安装eclipse.jdk.tomcat服务器 1.安装eclipse 2.设置eclipse为中文 3.安装jdk 4.安装tomcat 5.设置编码格 ...

  7. java成果_JAVA WEB期末项目第二阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 1.开发环境 开发编辑器使用:Visual Studio Code 数据库使用:MySQL8 ...

  8. 福州大学java期末试卷,Java Web认证题.doc

    Java Web认证题.doc 福州大学工程技术学院福州大学工程技术学院 04 级级 Web 应用程序设计应用程序设计Java 扬帆把舵,奋勇拼搏,看我扬帆把舵,奋勇拼搏,看我Java,英姿焕爽,英姿 ...

  9. java成果_JAVA Web期末项目第三阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...

最新文章

  1. ASP.NET程序中常用的三十三种代码
  2. 强化学习(十二) Dueling DQN
  3. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
  4. 2021-02-25
  5. 【C#学习笔记】单精度和双精度浮点型操作留意。
  6. 谷歌全球服务均宕机,系因内部存储配额问题引发
  7. 5)Javascript设计模式:extends模式
  8. Linux系统安装pgp教程,在Linux系统下安装pgpcommandline
  9. 如何用OBS录制Mac系统声音
  10. Face Recognition 库-人脸识别
  11. 使用 stm32实现锂电充电_12V锂电池保护板电路图锂电池保护板工作原理及短路、过充电等控制原理分析...
  12. 裸辞后破釜沉舟三个月,拿到SSP!
  13. VS2017编写汇编并调用c库函数(msvcrt.lib)
  14. 阳历日期转阴历工具类
  15. 计算长方形或正方形的周长和面积
  16. c语言求斐波那契数列n项以及前n项和
  17. 【射频知识】PCB材料/层叠/信号注入设计与传输线实现形式的性能比对
  18. DOA估计 基于稀疏贝叶斯的离格DOA估计
  19. linux c与c语言的区别吗,嵌入式c语言与c语言的区别
  20. Android调用微信扫一扫

热门文章

  1. 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果
  2. 直播软件与微信小程序的测试点
  3. 阿piu传-文档批量上传客户端-道客巴巴版使用帮助
  4. 深度经验总结:快逸报表工具单数据集版本和多数据集版本的主要区别之一
  5. 菜鸟窝-数据结构与算法之稀疏数组
  6. 【Cloudaily】蚂蚁金服与RISELab达成合作,Hadoop成新一波数据库攻击目标
  7. 消费者不好骗!2021过半,网红品牌为毛集体“玩崩”了?
  8. 一文带你透析zookeeper原理
  9. JavaBean对象与jfinal的Record对象互转
  10. ubuntu1804安装mysql5.7教程