JavaWeb程序填空题

XML文档

  • 请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。里面要求含有注释,注释内容自定。
    在这里插入图片描述

第三章

编写一个servlet,实现统计网站被访问次数的功能
  • ShowTimesServlet 类的编写如下:
    在这里插入图片描述
  • web.xml 的配置信息如下:
    在这里插入图片描述
请编写一段程序,使程序能读取该servlet的配置信息,从中获得参数名为encoding对应的参数值,并输出到页面上
  • TestServlet类如下:
    在这里插入图片描述
  • web.xml 文件配置如下:
    在这里插入图片描述

第四章:

禁止浏览器缓存页面的核心代码

在这里插入图片描述

请编写一个类,该类能够实现访问完app应用下的Servlet后,还能在浏览器地址栏中显示出index.jsp的路径
  • MyServlet 程序类如下:
    在这里插入图片描述
  • web.xml 文件配置如下:
    在这里插入图片描述
请编写一个类,该类使用HttpServletRequest对象的getHeader(“referer”)方法实现下载资源防盗链的功能
  • DownManagerServlet 类的实现代码
    在这里插入图片描述
  • web.xml 文件中 DownManagerServlet 的映射信息配置如下
    在这里插入图片描述

第五章

请设计一个类,使用Cookie技术实现显示用户上次访问时间的功能

在这里插入图片描述

  • LastAccessServlet 类的实现代码如下:
    在这里插入图片描述
    在这里插入图片描述
  • web.xml 文件配置如下:
    在这里插入图片描述
请设计一个程序,使用Session技术实现购物车功能
  • 书籍Book类的创建如下:
    在这里插入图片描述
  • 书籍数据库模拟类BookDB的代码如下:
    在这里插入图片描述
  • 显示可购买图书的列表类ListBookServlet的代码如下:
    在这里插入图片描述
  • 购物功能类PurchaseServlet的代码如下:
    在这里插入图片描述
    在这里插入图片描述
  • 展示所购图书类CartServlet的代码如下:
    public class CartServlet extends HttpServlet {
    	public void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		resp.setContentType("text/html;charset=utf-8");
    		PrintWriter out = resp.getWriter();
    		// 变量cart引用用户的购物车
    		List<Book> cart = null;
    		// 变量pruFlag标记用户是否买过商品
    		boolean purFlag = true;
    		// 获得用户的session
    		HttpSession session = req.getSession(false);
    		// 如果session为null,purFlag置为false
    		if (session == null) {
    			purFlag = false;
    		} else {
    			// 获得用户购物车
    			cart = (List) session.getAttribute("cart");
    			// 如果用的购物车为null,purFlag置为false
    			if (cart == null) {
    				purFlag = false;
    			}
    		}
    		/*
    		 * 如果purFlag为false,表明用户没有购买图书 重定向到ListServlet页面
    		 */
    		if (!purFlag) {
    			out.write("对不起!您还没有购买任何商品!<br>");
    		} else {
    			// 否则显示用户购买图书的信息
    			out.write("您购买的图书有:<br>");
    			double price = 0;
    			for (Book book : cart) {
    				out.write(book.getName() + "<br>");
    			}
    		}
    	}
    }
    
  • web.xml 文件配置如下:
    <servlet>
        <display-name>ListBookServlet</display-name>
        <servlet-name>ListBookServlet</servlet-name>
        <servlet-class>
    cn.itcast.chapter05.session.example01.ListBookServlet
    </servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ListBookServlet</servlet-name>
        <url-pattern>/ListBookServlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <display-name>PurchaseServlet</display-name>
        <servlet-name>PurchaseServlet</servlet-name>
        <servlet-class>
    cn.itcast.chapter05.session.example01.PurchaseServlet
    </servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>PurchaseServlet</servlet-name>
        <url-pattern>/PurchaseServlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <display-name>CartServlet</display-name>
        <servlet-name>CartServlet</servlet-name>
        <servlet-class>
    cn.itcast.chapter05.session.example01.CartServlet
    </servlet-class>
      </servlet>
    <servlet-mapping>
      <servlet-name>CartServlet</servlet-name>
      <url-pattern>/CartServlet</url-pattern>
    </servlet-mapping>
    

第六章:

请使用include标签编写两个JSP页面,要求:访问b.jsp页面时先输出b.jsp页面的内容,等待5秒,再输出a.jsp页面中的内容
  • a.jsp 文件如下:
    在这里插入图片描述
  • b.jsp 文件如下:
    在这里插入图片描述
请在web.xml文件中使用元素为整个Web应用程序设置错误处理页面。已知:处理状态码为404的页面为404.jsp, 处理状态码为500的页面为500.jsp
  • web.xml 文件如下:
    在这里插入图片描述

第七章:

请按要求编写一个c_ choose.jsp页面,使用<c:choose>、<c:when>和<c:otherwise>这三个标签完成多个条件选择的程序

在这里插入图片描述
在这里插入图片描述

使用EL表达式和JSTL实现将文本框中的内容输出到页面的功能,在此页面的文本框中输入内容,单击页面提交按钮之后,输入框以及按钮消失,文本框中输入的内容显示到页面

在这里插入图片描述
在这里插入图片描述

Person类为一个标准的JavaBean类,请设计一个程序,要求使用BeanUtils工具为Person对象赋值

在这里插入图片描述

  • Person 类如下:
    在这里插入图片描述
  • BeanUtilsDemo01 类如下:
    在这里插入图片描述

第八章:

已知有一个名为MyServlet的程序,程序可向浏览器输出“Hello MyServlet”。请编写一个用于拦截MyServlet程序的MyFilter拦截器

在这里插入图片描述

  • 创建MyServlet程序类
    在这里插入图片描述
  • 创建过滤器MyFilter类
    在这里插入图片描述
  • 编写web.xml文件,设置对MyServlet的拦截
    在这里插入图片描述
如何对ServletContext、HttpSession和ServletRequest这三个域对象属性的变更进行监听?请用代码展示
  • 编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用
    在这里插入图片描述
  • 编写一个MyAttributeListener类,该类实现了ServletContextAttributeListener、HttpSessionAttributeListener和ServletRequestAttributeListener接口,并实现该接口中的所有方法
    public class MyAttributeListener implements ServletContextAttributeListener,
    		HttpSessionAttributeListener, ServletRequestAttributeListener {
    	public void attributeAdded(ServletContextAttributeEvent sae) {
    		String name = sae.getName();
    		System.out.println("ServletContext添加属性:" + name + "="
    				+ sae.getServletContext().getAttribute(name));
    	}
    	public void attributeRemoved(ServletContextAttributeEvent sae) {
    		String name = sae.getName();
    		System.out.println("ServletContext移除属性: " + name);
    	}
    	public void attributeReplaced(ServletContextAttributeEvent sae) {
    		String name = sae.getName();
    		System.out.println("ServletContext替换属性:" + name + "="
    				+ sae.getServletContext().getAttribute(name));
    	}
    	public void attributeAdded(HttpSessionBindingEvent hbe) {
    		String name = hbe.getName();
    		System.out.println("HttpSession添加属性:" + name + "="
    				+ hbe.getSession().getAttribute(name));
    	}
    	public void attributeRemoved(HttpSessionBindingEvent hbe) {
    		String name = hbe.getName();
    		System.out.println("HttpSession移除属性: " + name);
    	}
    	public void attributeReplaced(HttpSessionBindingEvent hbe) {
    		String name = hbe.getName();
    		System.out.println("HttpSession替换属性:" + name + "="
    				+ hbe.getSession().getAttribute(name));
    	}
    	public void attributeAdded(ServletRequestAttributeEvent sra) {
    		String name = sra.getName();
    		System.out.println("ServletRequest添加属性:" + name + "="
    				+ sra.getServletRequest().getAttribute(name));
    	}
    	public void attributeRemoved(ServletRequestAttributeEvent sra) {
    		String name = sra.getName();
    		System.out.println("ServletRequest移除属性: " + name);
    	}
    	public void attributeReplaced(ServletRequestAttributeEvent sra) {
    		String name = sra.getName();
    		System.out.println("ServletRequest替换属性:" + name + "="
    				+ sra.getServletRequest().getAttribute(name));
    	}
    }
    
  • 在web.xml文件中,部署 MyAttributeListener事件监听器。
    在这里插入图片描述

第九章

请编写一个用于读取数据库中users表信息的JDBC程序,要求分别获取字段id、name、password和email字段的值

在这里插入图片描述

请按照以下要求设计实现PreparedStatement对象的相关批处理操作

在这里插入图片描述

  • JDBCUtils工具类的代码如下所示:
    import java.sql.*;
    public class JDBCUtils {
    	// 加载驱动,并建立数据库连接
    	public static Connection getConnection() throws SQLException,
    			ClassNotFoundException {
    		Class.forName("com.mysql.jdbc.Driver");
    		String url = "jdbc:mysql://localhost:3306/jdbc";
    		String username = "root";
        		String password = "itcast";
    		Connection conn = DriverManager.getConnection(url, username, 
    				password);
    		return conn;
    	}
    	// 关闭数据库连接,释放资源
    	public static void release(Statement stmt, Connection conn) {
    		if (stmt != null) {
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			stmt = null;
    		}
    		if (conn != null) {
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}
    	}
         public static void release(ResultSet rs, Statement stmt, 
         		Connection conn){
    		if (rs != null) {
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			rs = null;
    		}
    		release(stmt, conn);
    	}
    }
    
  • Example02 的代码如下所示:
public class Example02{
	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement  preStmt = null;
		try {
			// 加载并注册数据库驱动
			conn=JDBCUtils.getConnection();
			String sql = "INSERT INTO users(name,password)VALUES(?,?)";
			preStmt = conn.prepareStatement(sql);
			for (int i = 0; i < 5; i++) {
			preStmt.setString(1, "name" + i);
			preStmt.setString(2, "password" + i);
			preStmt.addBatch();
		}
		preStmt.executeBatch();
		} catch (Exception e) {
		e.printStackTrace();
		} finally { // 释放资源
		JDBCUtils.release(null, preStmt, conn);
		}
	}
}
  • 12
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值