返回顶部
首页 > 资讯 > 精选 >基于Servlet实现技术问答网站系统
  • 242
分享到

基于Servlet实现技术问答网站系统

servlet问答网站系统 2023-05-31 16:05:33 242人浏览 八月长安
摘要

这一篇博客将详细介绍一个基于Servlet的问答网站的实现,有详细的代码。可能篇幅较长,以代码为主,有兴趣的童鞋看完可以尝试动手搭建一个属于自己的问答社区。工具:Eclipse,数据库用到了MySQL,这次项目中未使用jsp,全部以Serv

这一篇博客将详细介绍一个基于Servlet的问答网站的实现,有详细的代码。

可能篇幅较长,以代码为主,有兴趣的童鞋看完可以尝试动手搭建一个属于自己的问答社区。

工具:Eclipse,数据库用到了MySQL,这次项目中未使用jsp,全部以Servlet注解的方式连接html和Servlet,jdk最好使用1.8,Tomcat使用8.0。(注解方式为JDK1.5后的特性,最低要求1.5+,本项目使用JDK1.8)。

在这篇博客中可以学习到:

1,Servlet中关于注解的使用,本项目没有使用到传统的Servlet配置WEB.xml,全部使用注解的形式。

2,了解Font Awesome这一矢量图标库的使用,他基本提供了项目中所要使用到的所有图标,方便,快捷。

3,了解simditor这一富文本编辑器的使用,网站中直接嵌入富文本编辑器,再也不用为读取出来的文字格式不对发愁了。

4,关于项目中如何加入验证码,数据库查询之前先进行验证码验证。

5,关于mvc框架显示层——Velocity技术的使用。

先看一下大体项目图(由于主要做后台,前台可能略丑,大家可以自行找网站模板)

登录界面:

基于Servlet实现技术问答网站系统

注册界面:

基于Servlet实现技术问答网站系统

首页,展示了大家的提问:

基于Servlet实现技术问答网站系统

解答界面,点击别人的提问后进入解答界面,使用了富文本编辑器。

基于Servlet实现技术问答网站系统

我的解答界面,展示了我回答的历史:

基于Servlet实现技术问答网站系统

我的提问界面,展示了我提问的所有问题:

基于Servlet实现技术问答网站系统

提问界面:进入网站点击我要提问,加入当前页编辑问题:

基于Servlet实现技术问答网站系统

下面介绍主要代码(代码中加入了详细注释,所以不再做说明)

主页列表Servlet:

@WebServlet( "/list.do" ) public class ListServlet extends httpservlet {  private static final long serialVersionUID = 810339694607399128L;  @Override  protected void service( HttpServletRequest request , HttpServletResponse response )    throws ServletException, IOException {  String question=request.getParameter("quest");  System.out.println(question);  if(StringHelper.notEmpty(question)){   final String sql = "SELECT id , title ,content, publish_time , publish_ip , user_id FROM t_topic where title =? " ;   ResultSet rs = JdbcHelper.query( SQL,question );    // 创建一个 List 对象,用来保存一批 Topic 对象   final List<Topic> topics = new ArrayList<>();   try {    // 每循环一次,光标下移一行,如果该行有数据返回 true    while( rs.next() ){     Topic t = new Topic(); // 创建对象     t.setId( rs.getInt( 1 ) ); // 将 结果集 中的 该行数据 封装到 t 对象的 id 属性中     t.setTitle( rs.getString( 2 ) );     t.setContent(rs.getString(3));     t.setPublishTime( rs.getTimestamp( 4 ));     t.setPublishIp( rs.getString( 5 ) );     User u = new User(); // 创建 一个 User 对象     u.setId( rs.getInt( 6 ) ); // 将 t_topic 表中的 user_id 放入到 User 对象的 id 属性中     t.setUser( u ); // 将 User 对象 设置到 Topic 对象上          topics.add( t );     }    } catch (SQLException e) {     e.printStackTrace();    }    JdbcHelper.release( rs ); // 关闭 结果集,释放相关的资源        //for( int i = 0 ; i < topics.size() ; i++ ){    for( int i = 0 , len = topics.size() ; i < len ; i++ ){     Topic t = topics.get( i ) ; // 获得 题目     User u = t.getUser(); // 获得当前题目的User对象 ( 该对象中只有 id 没有其它数据 )     // 根据 用户对象的 id 来查询 用户的信息     String querySQL = "SELECT id , username , passWord FROM t_user WHERE id = ? " ;     ResultSet userRs = JdbcHelper.query( querySQL , u.getId() );     try {      if( userRs.next() ) { // 如果查询到用户信息       // 注意,这里应该使用 userRs       u.setUsername( userRs.getString( 2 ) ); // 将 username 列的值设置到 用户对象的 username 属性中       u.setPassword( userRs.getString( 3 )); // 将 password 列的值设置到 用户对象的 password 属性中      }     } catch (SQLException e) {      e.printStackTrace();     }     JdbcHelper.release( userRs ); // 关闭 结果集,释放相关的资源    }    ServletContext application = request.getServletContext();        application.setAttribute( "topics" , topics );    System.out.println( "问题列表: " + topics );    // 去 list.html 页面    response.sendRedirect( request.getContextPath() + "/list.html");   }else{        final String SQL = "SELECT id , title ,content ,publish_time , publish_ip , user_id FROM t_topic ORDER BY publish_time DESC" ;    ResultSet rs = JdbcHelper.query( SQL );    // 创建一个 List 对象,用来保存一批 Topic 对象    final List<Topic> topics = new ArrayList<>();    try {     // 每循环一次,光标下移一行,如果该行有数据返回 true     while( rs.next() ){      Topic t = new Topic(); // 创建对象      t.setId( rs.getInt( 1 ) ); // 将 结果集 中的 该行数据 封装到 t 对象的 id 属性中      t.setTitle( rs.getString( 2 ) );      t.setContent(rs.getString(3));      t.setPublishTime( rs.getTimestamp( 4 ));      t.setPublishIp( rs.getString( 5 ) );      User u = new User(); // 创建 一个 User 对象      u.setId( rs.getInt( 6) ); // 将 t_topic 表中的 user_id 放入到 User 对象的 id 属性中      t.setUser( u ); // 将 User 对象 设置到 Topic 对象上            topics.add( t );     }    } catch (SQLException e) {     e.printStackTrace();    }    JdbcHelper.release( rs ); // 关闭 结果集,释放相关的资源        //for( int i = 0 ; i < topics.size() ; i++ ){    for( int i = 0 , len = topics.size() ; i < len ; i++ ){     Topic t = topics.get( i ) ; // 获得 题目     User u = t.getUser(); // 获得当前题目的User对象 ( 该对象中只有 id 没有其它数据 )     // 根据 用户对象的 id 来查询 用户的信息     String querySQL = "SELECT id , username , password FROM t_user WHERE id = ? " ;     ResultSet userRs = JdbcHelper.query( querySQL , u.getId() );     try {      if( userRs.next() ) { // 如果查询到用户信息       // 注意,这里应该使用 userRs       u.setUsername( userRs.getString( 2 ) ); // 将 username 列的值设置到 用户对象的 username 属性中       u.setPassword( userRs.getString( 3 )); // 将 password 列的值设置到 用户对象的 password 属性中      }     } catch (SQLException e) {      e.printStackTrace();     }     JdbcHelper.release( userRs ); // 关闭 结果集,释放相关的资源    }    ServletContext application = request.getServletContext();        application.setAttribute( "topics" , topics );    System.out.println( "问题列表: " + topics );    // 去 list.html 页面    response.sendRedirect( request.getContextPath() + "/list.html");  }  } } 

--结束END--

本文标题: 基于Servlet实现技术问答网站系统

本文链接: https://www.lsjlt.com/news/226953.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于Servlet实现技术问答网站系统
    这一篇博客将详细介绍一个基于Servlet的问答网站的实现,有详细的代码。可能篇幅较长,以代码为主,有兴趣的童鞋看完可以尝试动手搭建一个属于自己的问答社区。工具:Eclipse,数据库用到了MySQL,这次项目中未使用jsp,全部以Serv...
    99+
    2023-05-31
    servlet 问答 网站系统
  • 基于servlet实现统计网页访问次数
    本文实例为大家分享了基于servlet实现统计网页访问次数的具体代码,供大家参考,具体内容如下 一、基础知识 (1)ServletContext和ServletConfig的区别 S...
    99+
    2024-04-02
  • 基于PHP+MySQL信息技术学习网站设计与实现
    智多在线网络学习平台为学习各种技术查看资料的用户提供一个准确、最新的技术与相关文档,浏览目前流行教学的新闻,提出技术上遇到的难点及问题,帮助其他用户回答所提出的问题,上传想要分享的资源,下载要获取的相...
    99+
    2023-09-16
    php 学习 数据库
  • 如何利用 Python 开发技术和自然语言处理技术实现智能问答系统?
    智能问答系统是一种能够对用户提出的问题进行自动回答的系统。这种系统应用广泛,例如在线客服系统、智能助手等。在本文中,我们将介绍如何使用 Python 开发技术和自然语言处理技术实现智能问答系统。 选择合适的问答系统框架 选择合适的问答...
    99+
    2023-08-10
    开发技术 自然语言处理 linux
  • 基于PHP+MySQL动漫专题网站系统的设计与实现
    随着时代的发展,人们兴趣爱好也越来越广泛,动漫是当前年轻人比较钟爱的一个兴趣爱好之一,每年都会有大量的动漫爱好者定期的举办一些交流活动等,但是线下的这种交流方式明显不能满足当前动漫爱好者的需求,为此我...
    99+
    2023-09-22
    mysql php 数据库
  • PHP实现邮件网关系统技术详解
    PHP实现邮件网关系统技术详解邮件网关是一种非常有用的工具,它能够将各种形式的邮件转换成其他格式的邮件,并将它们发送到不同的收件人。PHP实现邮件网关系统是一个高效、快速、可靠的选择。在本文中,我们将详细讨论PHP实现邮件网关系统的技术。邮...
    99+
    2023-05-25
    PHP 邮件网关 系统技术
  • chatglm实现基于知识库问答的应用
    背景 目前由于ChatGPT横空出世,互联网如雨后春笋冒出了非常多的类ChatGPT的大型语言模型。但是对于这些语言模型,我们应该如何将它应用到我们实际的生产中需要一个更加成熟的解决方案。 介绍 本文...
    99+
    2023-08-31
    python
  • 基于php的课程网站络管理系统的设计与实现
    摘        要 管理系统是根据课程网站的需求而设计和实现的,主要  用于实现课程系统办公人员对其办公系统内所有公务员进行管理,实现对员工信息的查询、录入、修改和删除;以及发布重要通知、最新信息和规章制度。通过“网上办公,无纸办公”,大...
    99+
    2023-09-03
    php 数据库 开发语言
  • 基于Python的货币识别技术实现
    目录 介绍 本文的目的和意义 货币识别技术的应用场景 货币识别的基本原理 图像处理技术在货币识别中...
    99+
    2024-01-21
    Python 货币识别 图像处理 图像识别
  • 编写一个Servlet,实现统计网站被访问次数的功能
    一、要求 1.新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法。 2.在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet...
    99+
    2023-10-21
    servlet java intellij-idea
  • 基于SpringBoot的影视/短视频网站系统
    PS:该项目《基于springboot的视频网站设计与实现》为本人毕业设计。使用的开发工具是idea和webstrom。使用了java、springboot、mybatis、thymeleaf、vue-element-admin等插件。 该...
    99+
    2023-09-01
    spring boot java intellij idea mysql
  • 基于Java+SpringBoot+Thymeleaf+Mysql在线购物网站商城系统设计实现
    项目背景和意义 目的:伴随着互联网技术的不断发展和完善,在人们的生活和工作的各个方面,互联网都有着非常重大的影响。伴随着国内电子商务行业的迅猛发展,消费者现在能够轻松的实现足不出户的,仅仅通过网络购物平台就可以非常便捷的购买到自己需要...
    99+
    2023-10-20
    java 在线购物网站商城系统
  • 基于PHP实现个人博客网站
    目录一、运行展示二、功能说明三、核心代码讲解1、创建数据库2、初始化数据3、登录验证4、用户注册5、发表博客6、更新博客7、删除博客8、发表评论9、修改密码10、修改昵称11、管理员...
    99+
    2024-04-02
  • Sphinx PHP 实现在线问答系统中的问题搜索与回答
    引言:随着互联网的发展与普及,越来越多的网站和应用程序需要提供问题搜索与回答的功能。在开发这类功能时,我们常常需要使用到全文搜索引擎。Sphinx是一个功能强大且高性能的开源全文搜索引擎,它可以通过其提供的API与我们的应用程序进行交互。本...
    99+
    2023-10-21
    PHP (编程语言) 在线问答系统 Sphinx (搜索引擎)
  • 基于PHP实现不同语言商城网站的相关技巧
    随着全球化的发展,越来越多的商家开始考虑在网上销售产品。为了实现跨国销售,一个基于PHP的多语言商城网站就显得尤为重要。下面将介绍一些实现不同语言商城网站的相关技巧,希望对大家有所帮助。选择合适的框架选择适合的PHP框架是开发多语言商城网站...
    99+
    2023-05-14
    商城网站 PHP 多语言
  • 基于JavaScript实现文件共享型网站
    目录特色说明如何使用代码审查总结参考Any Share 是一种简单、轻量、快速的文件共享服务。使用 Javascript 编写,并搭建在 Firebase 平台。 特色 上传文件 下...
    99+
    2022-11-13
    JavaScript文件共享网站 JavaScript文件共享 JavaScript 网站
  • 基于Vue技术实现递归组件的方法
    描述 本文介绍的是基于Vue技术实现递归组件的方法。用Vue实现一级列表、二级列表的展示很简单,但是想要实现无限级,光是套上一个又一个的v-for是行不通的,这个时候就需要用到递归的...
    99+
    2024-04-02
  • 基于HTML5的人脸识别技术怎么实现
    今天小编给大家分享一下基于HTML5的人脸识别技术怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2024-04-02
  • 怎么基于 Knative Serverless 技术实现天气服务
    本篇文章为大家展示了怎么基于 Knative Serverless 技术实现天气服务,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。提到天气预报服务,我们第一反应是很简单的一个服务啊,目前网上有大把的...
    99+
    2023-06-02
  • 基于LigerUI前端技术实现的管理平台
    LigerUI是一个基于jQuery的开源前端框架,它提供了丰富的UI组件和强大的功能,可以帮助开发者快速搭建美观、易用的管理平台。...
    99+
    2023-08-08
    LigerUI
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作