`
newObject
  • 浏览: 23502 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

练习:模仿发短信来做一个简单的论坛(部分问题)

 
阅读更多
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小练习:模拟枪战游戏对战场景.zip

    在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战游戏对战场景 在GitHub上写的第一个JAVA小练习:模拟枪战...

    练习 6.7.3:IPv4 地址的子网划分

    练习中提到的第一个任务是确定给定IP地址的网络信息。对于IP地址172.25.114.250和网络掩码255.255.0.0,我们需要进行以下步骤: 1. 将IP地址和网络掩码转换为二进制形式,便于进行位运算。 2. 对IP地址和子网掩码...

    自己模仿练习

    在本项目中,"自己模仿练习"的主题是创建一个移动端版本的苏宁易购网站。苏宁易购是中国知名的电子商务平台,其移动端应用旨在提供便捷的在线购物体验,涵盖商品浏览、搜索、购买、支付等多个功能模块。这个模仿练习...

    课后练习:练习二.ppt

    这个课后练习主要涉及到基础的数学运算,包括加法、减法以及简单的算术逻辑。以下是对练习内容的详细解析: 1. 练习一的第1题是基础的加法和减法练习: - 9 + 4 = 13 - 9 + 5 = 14 - 13 - 9 = 4 - 14 - 9 = 5 ...

    数一下课后练习:练习二.ppt

    这份资料名为"数一下课后练习:练习二.ppt",看似是针对初学者的一份数学练习,主要涉及基础的算术运算,包括加法、减法以及解决简单的数学问题。练习内容分为多个部分,旨在帮助学生巩固和提高他们的计算技能。 ...

    政治(人教版)练习:第一部分第一单元方法练(二).pdf

    政治(人教版)练习:第一部分第一单元方法练(二).pdf

    三年级语文下册专项练习:句子练习一.doc

    这篇文档是针对小学三年级语文下册的一个专项练习,主要涵盖了句子的各种类型和技巧,包括仿写句子、比喻句、变换句式、填写关联词语以及补充句子等。以下是对这些知识点的详细说明: 1. **仿写句子**: - 这一...

    人教版二年级数学上册专项练习:计算题.doc

    加法是将两个或多个数值合并成一个新数值的过程,而减法则是找出从一个数中去掉另一个数后剩余的数。 2. 口算: 口算是快速解决问题的关键技能,例如题目中的76-37、54-29等,学生需要能够迅速心算得出答案。口算...

    一个简单中英文打字练习

    【标题】:“一个简单中英文打字练习” 这个项目是一个基于VB.NET开发的打字练习软件,旨在帮助用户提升中英文打字速度和准确性。VB.NET(Visual Basic .NET)是微软公司推出的一种面向对象的编程语言,属于.NET...

    政治(人教版)练习:第二部分第一单元第二课我国公民的政治参与.pdf

    政治(人教版)练习:第二部分第一单元第二课我国公民的政治参与.pdf

    Java基础练习题,提供给刚学JAVA复习用的

    - 练习:设计一个简单的类,如Student,包含姓名、年龄属性,以及获取和设置这些属性的方法。创建类的对象并进行操作。 8. **封装** - 练习:将上面的Student类属性设为私有,通过公共的getter和setter方法访问。...

    2016秋数学北师大版必修2练习:1.1.2简单多面体含解析.pdf

    由于文件的【部分内容】是OCR扫描后的内容,存在识别错误,因而很难精准地解释每一个符号和表达式的意义。不过,以上所列举的知识点,均基于标题和描述所隐含的信息,提供了关于“简单多面体”这一数学主题的相关...

    Android开发练习项目:一款模仿 Eyepetizer - 开眼视频的app

    这是一个完全模仿 开眼视频的开源Demo,个人非常喜欢这款app 的UI 风格,由此第二次模仿该app进行相关技术的学习与整合, 项目结构 该开源项目采用组件化的方式开发,使用MVVM + AndroidX + jetpack 组件为基本架构...

    政治(人教版)练习:第一部分第四单元第九课走进社会主义市场经济.pdf

    政治(人教版)练习:第一部分第四单元第九课走进社会主义市场经济.pdf

    安卓短信彩信相关相关-新手短信练习例子.rar

    7. **学习资源**:除了这个练习例子,还有很多官方文档和社区资源可以帮助学习短信彩信编程,比如Android Developer官网,Stack Overflow,以及各种编程论坛。 8. **安全考虑**:处理短信和彩信时,应考虑隐私和...

    2019高考地理核心考点练习:交通.pdf

    从提供的部分内容来看,该文档似乎是一个练习题集,其中包含了大量的选择题和填空题。虽然内容显得有些凌乱,且部分识别的文字出现错误或缺失,但是可以识别出某些题目的选项和部分练习题的序号。这些题目很可能是...

    模仿百度首页简单练习.rar

    这是一个针对前端初学者的练习项目,名为"模仿百度首页简单练习.rar",旨在帮助学习者掌握HTML和CSS的基础知识,并通过实践提升布局设计能力。在这个项目中,学生将有机会模仿百度首页的界面进行重构,从而熟悉网页...

    ★2019版一轮优化探究政治(人教版)练习:第一部分第二单元方法练(四)Word版含解析.pdf

    ★2019版一轮优化探究政治(人教版)练习:第一部分第二单元方法练(四)Word版含解析.pdf

Global site tag (gtag.js) - Google Analytics