1、分页显示信息:
public List<T> getAllById(int pageCount,int pageNum,int id) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
List<T> list = new ArrayList<T>();
try {
conn = this.getConn();
stmt = conn.prepareStatement("select * from(select t.*,rownum rk from testTablet order by id) where rk<=? and rk>? ");
stmt.setInt(1, pageNum*pageCount);
stmt.setInt(2, (pageNum-1)*pageCount);
rs = stmt.executeQuery();
while(rs.next()){
T t= new T();
list.add(t);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeAll(rs, stmt, conn);
}
return list;
}
int pageSize = 2;
int count = messBiz.pageDiv(user.getUserid());
int p =1;
if(request.getParameter("p")!=null){
p = Integer.parseInt(request.getParameter("p"));
}
int num = (int)Math.ceil(count/pageSize);
int prePage = p==1?1:p-1;
int nexPage = p==num?num:p+1;
..........
共<%=count %>条<%=num %>页第<%=p %>页
<a href="listMsg.jsp?p=<%=prePage %>">上一页</a>
<a href="listMsg.jsp?p=<%=nexPage %>">下一页</a>
2、发件人下拉列表的选择
<form action="doPost.jsp" method="post" id="myForm">
<table border="1" >
<tr><td>收件人</td>
<td>
<select name = "recId">
<%for(Users user:userList){ %>
<option value="<%=user.getUserid() %>"><%=user.getUserName() %></option>
<%} %>
</select>
<%if(request.getParameter("id")!=null) {%>
<script type="text/javascript">myForm.recId.value='<%=Integer.parseInt(request.getParameter("id"))%>'</script>
<%} %>
</td></tr>
<tr><td>标题</td><td><input type="text" name="title"/></td></tr>
<tr><td><input type="text" name="content"/></td></tr>
</table>
<input type="submit" name="reply" value="发送"/>
<input type="reset" name="summint" value="清空" />
</form>
3、使用按钮实现页面的跳转并传递参数
<input type="button" value="回复" onclick="window.location.href='post.jsp?id=${mess.senderId}'"/>
<input type="button" value="删除" onclick="window.location.href='doDelete.jsp?id=${mess.messageId}'"/>
4、对于奇偶行显示不同的北京颜色(使用的是JSTL标签)
<table>
<tr>
<td></td><td>状态</td><td>标题</td><td>发件人</td><td>时间</td><td>是否删除</td>
</tr>
<c:forEach var="mess" items="${messList}" step="1" varStatus="staus">
<c:choose >
<c:when test="${staus.index%2==0}" ><c:set var="color" value="#FAEBD7"></c:set></c:when>
<c:otherwise ><c:set var="color" value="#FFEBCD"></c:set></c:otherwise>
</c:choose>
<tr bgcolor=${color} }>
<td>${staus.index }</td>
<td>${mess.isRead}</td>
<td><a href="showMsg.jsp?id=${mess.messageId }">${mess.title }</a></td>
<td>${mess.senderId }</td>
<td>${mess.time }</td>
<td><input type="button" value="删除" onclick="window.location.href='doDelete.jsp?id=${mess.messageId }'"/></td>
</tr>
</c:forEach>
</table>
5、退出使用时
session.removeAttribute("user");
response.sendRedirect("login.jsp");
6、设置字节码类型的Filter
public class codeFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
6、记录用户登录的Filter
public class SessionFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
String url = req.getRequestURI();
if(url.endsWith("login.jsp")||url.endsWith("doLogin.jsp")){
chain.doFilter(request, response);
}
else{
if(req.getSession().getAttribute("user")==null){
res.sendRedirect("login.jsp");
}
else{
chain.doFilter(request, response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
7、关于DAO中方法的命名规则
增删改分为使用insert、delete、update
查使用的是get
8、关于我的BaseDao
public class BaseDao {
public Connection getConn(){
Connection conn = null;
try {
Context ic = new InitialContext();
DataSource source = (DataSource) ic.lookup("java:comp/env/jdbc/message");
conn = source.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public void closeAll(ResultSet rs ,PreparedStatement stmt,Connection conn){
try {
if(rs != null)
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public int executeUpdate(String sql,Object[] obj){
Connection conn = getConn();
PreparedStatement stmt = null;
int ret = 0;
try {
stmt = conn.prepareStatement(sql);
for(int i=0;i<obj.length;i++){
stmt.setObject(i+1, obj[i]);
}
ret = stmt.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeAll(null,stmt,conn);
}
return ret;
}
}
9、关于表连接后属性的问题
可以再实体类中多加几个属性来满足表连接后的视图的问题。
分享到:
相关推荐
在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战...
这个“一个简单的模仿spring的ioc实现”项目旨在帮助开发者理解Spring Ioc的核心概念,并通过自己的代码实现来加深对这一机制的理解。 首先,Spring Ioc的主要目标是解耦应用程序组件。它通过管理对象的生命周期和...
因此,这个文件很可能包含了整个练习系统的源代码,用户可以通过查看和学习这些代码来了解系统的工作原理,以及如何使用Spring、SpringMVC和MyBatis实现一个完整的Web应用程序。 综上所述,这个项目为Java算法爱好...
本练习主要使用QPainter操作,单链表,自定义鼠标事件,定时事件来实现一个简易的贪吃蛇练习 参考常见的贪吃蛇游戏,包含以下功能: 1. **页面背景**:绘制网格线背景 2. **绘制蛇**:使用QPainter绘制连续的小方块...
这个课后练习主要涉及到基础的数学运算,包括加法、减法以及简单的算术逻辑。以下是对练习内容的详细解析: 1. 练习一的第1题是基础的加法和减法练习: - 9 + 4 = 13 - 9 + 5 = 14 - 13 - 9 = 4 - 14 - 9 = 5 ...
这份资料名为"数一下课后练习:练习二.ppt",看似是针对初学者的一份数学练习,主要涉及基础的算术运算,包括加法、减法以及解决简单的数学问题。练习内容分为多个部分,旨在帮助学生巩固和提高他们的计算技能。 ...
例如,如果这是一个关于编程的练习,我们可能在讨论变量声明、条件语句、循环、函数设计或是特定编程语言的特性;如果是关于网络,可能是TCP/IP协议、路由、网络安全或服务器配置等内容;如果是数据库,可能是SQL...
政治(人教版)练习:第一部分第一单元方法练(二).pdf
标题 "j2ee:servlet练习短信项目,包含过滤器的使用、EL表达式和JSTL标准标签库的使用" 描述了一个基于J2EE平台的短信服务项目的实践,其中涵盖了多个关键的Java Web开发技术。这个项目不仅涉及到Servlet的编程,还...
这篇文档是针对小学三年级语文下册的一个专项练习,主要涵盖了句子的各种类型和技巧,包括仿写句子、比喻句、变换句式、填写关联词语以及补充句子等。以下是对这些知识点的详细说明: 1. **仿写句子**: - 这一...
2019版高中政治A版一轮复考点复习练习:4部分.pdf
加法是将两个或多个数值合并成一个新数值的过程,而减法则是找出从一个数中去掉另一个数后剩余的数。 2. 口算: 口算是快速解决问题的关键技能,例如题目中的76-37、54-29等,学生需要能够迅速心算得出答案。口算...
我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...
政治(人教版)练习:第二部分第一单元第二课我国公民的政治参与.pdf
- 练习:设计一个简单的类,如Student,包含姓名、年龄属性,以及获取和设置这些属性的方法。创建类的对象并进行操作。 8. **封装** - 练习:将上面的Student类属性设为私有,通过公共的getter和setter方法访问。...
由于文件的【部分内容】是OCR扫描后的内容,存在识别错误,因而很难精准地解释每一个符号和表达式的意义。不过,以上所列举的知识点,均基于标题和描述所隐含的信息,提供了关于“简单多面体”这一数学主题的相关...
文档标题“一上数学专项练习:钟表和认识图形.doc”揭示了这是一份针对一年级学生设计的数学学习材料,主要涵盖了两个主题:钟表知识和基础图形认知。这样的练习旨在帮助孩子们建立基本的时间概念以及识别和理解基本...
这是一个完全模仿 开眼视频的开源Demo,个人非常喜欢这款app 的UI 风格,由此第二次模仿该app进行相关技术的学习与整合, 项目结构 该开源项目采用组件化的方式开发,使用MVVM + AndroidX + jetpack 组件为基本架构...
政治(人教版)练习:第一部分第四单元第九课走进社会主义市场经济.pdf