注释:
1 、HTML注释:
<!-- -->
2、 jsp注释:
<%-- --%>
实例1 :九九乘法表
<%for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
out.print(j+"*"+i+"="+i*j+" ");
}%>
<br>
<%
} %>
实例2 :包含页面给被包含页面传两个double型参数,被包含页面接收参数计算和并显示。
传参的getParameter是字符串类型 ,获取值时都要进行类型转换。
doublechuancan.jsp:
<jsp:include page="double.jsp">
<jsp:param value="2.0" name="d1"/>
<jsp:param value="3.0" name="d2"/>
</jsp:include>
double.jsp:
<%double d1=Double.parseDouble(request.getParameter("d1")); %>
<%double d2=Double.parseDouble(request.getParameter("d2")); %>
<%=d1+d2 %>
案例3:生成一个随机数,如果大于0.5跳转到一个页面,如果小于0.5跳转到另一个页面,并将随机数传过去,在跳转到的页面显示。
random1.jsp:
<%double random=Math.random();
if(random>0.5){%>
<jsp:forward page="random2.jsp">
<jsp:param value="<%=random%>" name="a1"/>
</jsp:forward>
<%}
else { %>
<jsp:forward page="random3.jsp">
<jsp:param value="<%=random%>" name="a2"/>
</jsp:forward>
<%} %>
random2.jsp:
大于0.5的页面:
<%double a1=Double.parseDouble(request.getParameter("a1")); %>
<%=a1%>
random3.jsp:
小于0.5的页面:
<% double a2=Double.parseDouble(request.getParameter("a2"));%>
<%=a2 %>
实例4 : 填写用户信息,用el标签输出
eluserinfo.jsp:
<form action="eluserinfo1.jsp" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="text" name="mima"><br>
性别:<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女<br>
爱好:<input type="checkbox" name="hobby" value="读书">读书
<input type="checkbox" name="hobby" value="游戏">游戏
<input type="checkbox" name="hobby" value="上网">上网
<input type="checkbox" name="hobby" value="学习">学习<br>
职业:<select name="job">
<option value="学生">学生</option>
<option value="教师">教师</option>
<option value="工程师">工程师</option>
<option value="其他">其他</option>
</select>
<br>
<input type="submit" value="注册">
<br>
<input type="reset" value="重填">
</form>
eluserinfo1.jsp:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%request.setCharacterEncoding("utf-8"); %>
用户名:${param.name}<br>
密码:${param.mima}<br>
性别:${param.sex }
爱好: <c:forEach items="${paramValues.hobby}" var="i">
${i}
</c:forEach>
<br>
职业: <c:forEach items="${paramValues.job}" var="j">
${j}
</c:forEach>
实例5 :创建一个圆的javabean,表单传半径,显示传来的半径并计算圆的面积。
circle.jsp:
<form action="circle1.jsp" method="post">
输入半径:<input type="text" name="r"><br>
<input type="submit" value="ok">
</form>
circle1.jsp:
<jsp:useBean id="a" class="com.beans.Circle"></jsp:useBean>
<%-- id是对象--%>
<jsp:setProperty property="*" name="a"/>
<%--name是对象 --%>
使用getProperty:<br>
半径为:<jsp:getProperty property="r" name="a"/> <br>
面积为:<jsp:getProperty property="s" name="a"/> <br>
使用sessionScope:<br>
半径为:${sessionScope.a.r }<br>
面积为:${sessionScope.a.s }<br>
使用bean属性方法:<br>
半径为:<%=a.getR() %><br>
面积为:<%=a.getS() %><br>
实例6 : 注册用户密码,javabean方法、getproperty方法显示
zhentian.jsp
<form action="zhentian1.jsp" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="text" name="password"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>
zhentian1.jsp
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="a" class="com.beans.Info"></jsp:useBean>
<jsp:setProperty property="*" name="a"/>
使用getProperty方法:<br>
用户名:<jsp:getProperty property="name" name="a"/><br>
密码:<jsp:getProperty property="password" name="a"/><br>
年龄:<jsp:getProperty property="age" name="a"/><br>
使用Javabean方法:<br>
用户名:<%=a.getName() %><br>
密码:<%=a.getPassword() %><br>
年龄: <%=a.getAge() %><br>
实例7:简单显示当前时间
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date" %>
<%Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String today=df.format(date);
%>
当前日期:<%=today %>
实例8:选择喜欢的球队 没有输出一个没也没有,用getparameterValues实现复选框
null.jsp
<form action="null1.jsp" method="post">
选择你喜欢的球队:<br>
<input type="checkbox" name="item" value="湖人">湖人
<input type="checkbox" name="item" value="热火">热火
<input type="checkbox" name="item" value="骑士">骑士
<input type="checkbox" name="item" value="雄鹿">雄鹿<br>
<input type="submit" value="提交">
</form>
null1.jsp
<%
request.setCharacterEncoding("utf-8");
String itemname[]=request.getParameterValues("item");
//获取CheckBox的值
out.println("你喜欢的球队:");
if(itemname==null)
{
out.print("一个也不喜欢");
}
else
{
for(int i=0;i<itemname.length;i++)
{
out.print(""+itemname[i]);
}
}
%>
实例9:更新时间,每隔一秒刷新一次
timerefresh.jsp
<%
Date d=new Date();
SimpleDateFormat s=new SimpleDateFormat("hh:mm:ss"); %>
<%=s.format(d) %>
<%response.setHeader("refresh", "1"); %>
实例10:幸运大抽奖
luck.jsp
<%Random random=new Random(); %>
<c:set var="luck" value="<%=random.nextInt(8) %>" scope="page"></c:set>
<%--random.nextInt(8),返回[0,8) 集合中的整数,不包括8 --%>
<c:choose>
<c:when test="${pageScope.luck==3}">恭喜中了一等奖!</c:when>
<c:when test="${pageScope.luck==4}">恭喜中了二等奖!</c:when>
<c:when test="${pageScope.luck==5}">恭喜中了三等奖!</c:when>
<c:otherwise>谢谢参与!
<a href="">
<button>再来一次</button></a>
</c:otherwise>
</c:choose>
实例11:利用servlet进行登录验证
userlogin.jsp:
<form action="Myservlet" method="post">
用户名:<input type="text" name="user"><br>
密码:<input type="text" name="pwd"><br>
<input type="submit" value="提交">
</form>
Myservlet:
新建完servlet后,把映射地址去掉前面的部分
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name=request.getParameter("user");
String pwd=request.getParameter("pwd");
if(name.equals("张三"))
{
if(pwd.equals("123"))
{
System.out.println("密码正确");
HttpSession session=request.getSession();
session.setAttribute("name",name);
request.getRequestDispatcher("success.jsp").forward(request, response);
}
else{
System.out.println("密码错误");
}
}
else {
System.out.println("用户名不存在");
}
}
success.jsp:
<%=session.getAttribute("name") %>
案例12:JDBC 连接数据库 增删改查
<% try { Class.forName("com.mysql.jdbc.Driver"); //加载MySQL驱动实例
String url = "jdbc:mysql://localhost:3306/employeeDB";
String username = "root";// 数据库用户名
String password = "root";// 数据库密码
Connection conn = DriverManager.getConnection(url,username,password); //建立连接
String sql = "select * from employee where age>? and salary>?";
//使用PreparedStatement对象里来构建SQL语句
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,18);//使用set方法设置sql语句中第一个参数值为18,age为int类型
pstmt.setFloat(2,3000);;//设置sql语句中第二个参数值为3000,salary为float类型
ResultSet rs=pstmt.executeQuery();//执行查询
out.print("<table border=2>");
out.print("<tr>");
out.print("<th width=100>员工号</th>");
out.print("<th width=100>姓名</th>");
out.print("<th width=50>年龄</th>");
out.print("<th width=50>性别</th>");
out.print("<th width=50>薪水</th>");
out.print("<th width=50>部门</th>");
out.print("</tr>");
while(rs.next()) //判断结果集还有没有数据
{ out.print("<tr>");
out.print("<td >"+rs.getInt(1)+"</td>");
out.print("<td >"+rs.getString(2)+"</td>");
out.print("<td >"+rs.getString("age")+"</td>");
out.print("<td >"+rs.getString("sex")+"</td>");
out.print("<td >"+rs.getFloat("salary")+"</td>");
out.print("<td >"+rs.getString("department")+"</td>");
out.print("</tr>") ;
}
out.print("</table>");
rs.close();
pstmt.close();
conn.close() ; //关闭数据库连接
} catch (Exception e) {
out.print(e.getMessage());
}