(一)在同一jsp页面提交和接收数据
(二)eclipse开发工具介绍
(三)model1模式
(四)一个简单的用户管理系统

(一)在同一jsp页面提交和接收数据

<!--这是计算器界面-->
<%@ page contentType="text/html;charset=GB2312"%>
<html><h1>我的计算机</h1><hr><head><!--在jsp中内置js代码,防止用户空提交--><script language="javascript">//写一个函数,检验用户是否空提交//判断num1,是不是空function checkNum(){if(form1.num1.value==""){window.alert("输入不能为空!");return false;}//if(Math.round(form1.num1.vlaue)!=form1.num1.value){// window.alert("必须输入数值!");//    return false;//}}</script></head><body><%//接收第一个数String s_num1=request.getParameter("num1");//接收第二个数String s_num2=request.getParameter("num2");//接收运算符String oper=request.getParameter("oper");int num1=0;int num2=0;int result=0;//为防止异常发生,做一个处理,因为s_num可能为空if(s_num1!=null && s_num2!=null && oper!=null){num1=Integer.parseInt(s_num1);num2=Integer.parseInt(s_num2);//计算输出if(oper.equals("+")){result=num1+num2;}else if(oper.equals("-")){result=num1-num2;}else if(oper.equals("*")){result=num1*num2;}else{result=num1/num2;}}%><form name="form1" action="interface.jsp">请输入第一个数:<input type="text" size="6" name="num1" value="<%=num1%>"><br><select name="oper"><option value=+>+</option><option value=->-</option><option value=*>*</option><option value=/>/</option></select><br>请输入第二个数:<input type="text" size="6" name="num2" value="<%=num2%>"><br><input type="submit" value="计算" onclick="return checkNum();"></form><hr><!--这里输出计算的结果-->计算结果:<%=result  %><!--表达式语法--></body>
</html>

(二)myeclipse开发工具介绍

如果之前安装过eclipse软件,再安装myeclipse之后导致新建工程里面没有web工程选项,解决的办法是把eclipse删除后,重新安装myeclipse。
此外需要配置tomcat


可以使用一下代码,放在MyEclipse安装目录下通过控制台编译,得到注册码


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class MyEclipse
{private static final String L = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";
public static void main(String[] args)
{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String userId = null;
int intLicenseNum = 1;
String strLicenseNum = null;
boolean bProFlag = true;
String strProFlag = null;
while ((userId == null) || ("".equals(userId.trim()))) {System.out.print("用户名: ");
try {userId = br.readLine();
}
catch (IOException localIOException1)
{}
}
System.out.print("注册码可用的用户数量(默认 1, 最大 999): ");
try {strLicenseNum = br.readLine();
}
catch (IOException localIOException2)
{}
Object nf = new DecimalFormat("000");
if ((strLicenseNum == null) || ("".equals(strLicenseNum.trim())))
strLicenseNum = ((NumberFormat)nf).format(intLicenseNum);
else {strLicenseNum = ((NumberFormat)nf).format(Integer.parseInt(strLicenseNum));
}
System.out.print("个人版 或 标准版(默认 个人版, n 标准版): ");
try {strProFlag = br.readLine();
}
catch (IOException localIOException3) {}
if ((strProFlag != null) && (!("".equals(strProFlag.trim())))) {bProFlag = false;
}
Calendar cal = Calendar.getInstance();
cal.add(1, 2);
cal.add(6, -1);
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
String need = userId.substring(0, 1) + "Y" +
((bProFlag) ? "E3MP" : "E2MY") + "-100" + strLicenseNum + "-" +
sdf.format(cal.getTime()) + "0";
String dx = need + "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself." + userId;
int suf = decode(dx);
String code = need + suf;
System.out.println("注册码: " + change(code));
}
static int decode(String s) {int i = 0;
char[] ac = s.toCharArray();
int j = 0;
for (int k = ac.length; j < k; ++j)
i = 31 * i + ac[j];
return Math.abs(i);
}
static String change(String s) {if ((s == null) || (s.length() == 0))
return s;
byte[] abyte0 = s.getBytes();
char[] ac = new char[s.length()];
int i = 0;
for (int k = abyte0.length; i < k; ++i) {int j = abyte0[i];
if ((j >= 48) && (j <= 57))
j = (j - 48 + 5) % 10 + 48;
else if ((j >= 65) && (j <= 90))
j = (j - 65 + 13) % 26 + 65;
else if ((j >= 97) && (j <= 122))
j = (j - 97 + 13) % 26 + 97;
ac[i] = (char)j;
}
return String.valueOf(ac);
}
}


站点写好之后,需发布到tomcat服务器上

(三)model1模式介绍

(四)用户登录系统
login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
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 'login.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"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><form action=loginCl.jsp>用户名<input type="text" name="username"><br>密&nbsp;&nbsp;&nbsp;&nbsp;码<input type="password" name="passwd"><br><input type="submit" value="登录"></form></body>
</html>

loginCl.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%>
<%
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 'loginCl.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"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><%String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb";String user="sa";String pass="tingwei";String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//接收用户名和密码,完成对用户的验证String u=request.getParameter("username");String p=request.getParameter("passwd");//导数据库中验证用户//1.加载驱动Class.forName(driver);//2.得到连接Connection ct=DriverManager.getConnection(url,user,pass);//创建statementStatement sm=ct.createStatement();//4.查询数据库ResultSet rs=sm.executeQuery("select passwd from users where username='"+u+"'");//5.执行,根据结果做判断if(rs.next()){//用户存在,但未必合法if(rs.getString(1).equals(p)){//一定合法response.sendRedirect("wel.jsp?user="+u);}else{//密码错误response.sendRedirect("login.jsp?errNo=1");}}else{//不存在该用户response.sendRedirect("login.jsp?errNo=2");}%></body>
</html>

wel.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%>
<%
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 'wel.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"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>登录成功!<%=request.getParameter("user") %><br><a href="login.jsp">返回重新登录</a><hr><h1>用户信息列表</h1><%//定义分页需要用到的变量int pageSize=3;//每页显示记录数int pageNow=1;//当前显示的页面,默认显示第一页int rowCount=0;//总共有多少条记录int pageCount=0;//总页数//接收用户希望显示第几页String s_pageNow=request.getParameter("pageNow");if(s_pageNow!=null){//接收到pageNowpageNow=Integer.parseInt(s_pageNow);}//查询得到rowCountString url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb";String user="sa";String pass="tingwei";String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//接收用户名和密码,完成对用户的验证String u=request.getParameter("username");String p=request.getParameter("passwd");//导数据库中验证用户//1.加载驱动Class.forName(driver);//2.得到连接Connection ct=DriverManager.getConnection(url,user,pass);//创建statementStatement sm=ct.createStatement();//4.查询数据库ResultSet rs=sm.executeQuery("select count(*) from users");//查询数据库一共有多少条记录if(rs.next()){rowCount=rs.getInt(1);}//计算pageCount,有多种算法if(rowCount%pageSize==0){pageCount=rowCount/pageSize;}else{pageCount=rowCount/pageSize+1;}//查询出,需要显示的记录rs=sm.executeQuery("select top "+pageSize+" * from users where userId not in(select top "+pageSize*(pageNow-1)+" userId from users)");//查询数据库一共有多少条记录%><table border="1"><tr><td>用户id</td><td>用户名</td><td>密码</td><td>电邮</td><td>级别</td></tr><%while(rs.next()){%><tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr><% }%></table><%//上一页if(pageNow!=1)out.println("<a href=wel.jsp>pageNow="+(pageNow-1)+">上一页</a>");//显示超链接for(int i=1;i<=pageCount;i++){out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>");}//下一页if(pageNow!=pageCount)out.println("<a href=wel.jsp>pageNow="+(pageNow+1)+">下一页</a>");%></body>
</html>

运行结果:


use spdb
select *from users
--排除前6条再取三条查到的就是第三页
select top 3 * from users where userId not in (select top 6 userId from users)
delete from users where userId=9 --删除指定记录
select count(*) from users--查看总共有多少条记录

JSP教程第2讲笔记相关推荐

  1. CG基础教程-陈惟老师十二讲笔记

    转自 麽洋TinyOcean:http://www.douban.com/people/Tinyocean/notes?start=50&type=note 因为看了陈惟十二讲视频没有课件,边 ...

  2. react render没更新_web前端教程分享React学习笔记(一)

    web前端教程分享React学习笔记(一),React的起源和发展:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写 ...

  3. Java Servlet和JSP教程

    http://www.bccn.net/article/web/jsp/jc/200409/72.html 简介 这是一个比较完整的Servlet.JSP教程,包含大量的实用资料和示例,仙人掌工作室倾 ...

  4. 信息系统项目管理师教程考点精讲之项目成本管理

    希赛小编为大家整理了几篇信息系统项目管理师教程考点精讲,以下是有关第八章项目成本管理的内容. 可控和不可控的成本应该分别估算和预算. 在某些项目上,特别是小型项目,成本估算和预算可被视为一个过程.项目 ...

  5. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  6. Python编程系列教程第16讲——拷贝自身到系统目录

    分享知识,分享快乐,收获友谊,收获财富! 大家好,我是数字雨,QQ:798033502 http://itbook.taobao.com/ 今天给大家带来的教程是<Python编程系列教程第16 ...

  7. 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立

    原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...

  8. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

     深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening 主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通 ...

  9. 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器

     深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器 UFLDL即(unsupervised feature learning & deep learning).这是斯坦福网站上的一篇 ...

  10. 视觉SLAM总结——视觉SLAM十四讲笔记整理

    视觉SLAM总结--视觉SLAM十四讲笔记整理 说明 基础知识点 1. 特征提取.特征匹配 (1)Harris (2)SIFT (3)SUFT (4)ORB (5)特征匹配 2. 2D-2D:对极约束 ...

最新文章

  1. 服务器 声音文件 nginx,docker nginx搭建视频音频服务器
  2. mysql 删除原理_MySQL权限原理及删除MySQL的匿名账户
  3. Qt 模式视图框架解读之委托
  4. 在Windows 2003中集成RAID卡驱动
  5. 魔法值是什么?(为什么在阿里巴巴开发手册中提到不允许任何魔法值直接出现在代码中)
  6. 1043 输出PATest (20分)_23行代码满分
  7. Python学习(三)基础
  8. Guava ImmutableCollection简介
  9. c语言强化训练作业整理1
  10. 1600k 打印头测试软件,更换LQ-1600K打印头断针的技巧
  11. C#.Net工作笔记005---c#中list合并去重_以及单纯合并_值类型list去重
  12. Linux操作系统PS命令详细解析
  13. 中国移动虚拟服务器设置,在中国移动公众服务云平台上服务器虚拟化的设计与实现...
  14. 联想本win10 virtualbox 安装centos
  15. zstack信道_zigbee无线信道的组成
  16. Android 获取当天零点的毫秒值并将时间格式化
  17. 德国慕尼黑.NET俱乐部VS2019发布活动
  18. i春秋-CTF-web文件上传
  19. 【开发日志】2022.09.25 Unity变色龙跑酷自制游戏详解
  20. c语言flag go to,C 语言getopt与go语言flag获取命令参数

热门文章

  1. ubuntu中使用.rpm
  2. To XSS or not ? 杂谈
  3. TCP实现原理(拥塞控制)
  4. TCP实现原理(报文段结构+可靠数据传输+流量控制)
  5. scala下使用akka计算圆周率pi
  6. 多线程中使用CheckForIllegalCrossThreadCalls = false访问窗口
  7. STL中的序列式容器——stack(栈)
  8. 阿里云在西雅图招人挖角 微软居多
  9. Apache优化配置
  10. iOS 开发的9个超有用小技巧