21xrx.com
2025-04-24 17:00:10 Thursday
文章检索 我的文章 写文章
JavaWeb实战:七个示例带你入门Web开发
2023-06-11 14:58:53 深夜i     12     0
JavaWeb开发 JSP servlet

JavaWeb作为Java的一个分支,是目前Web开发领域的主流技术之一。对于想要从事Web开发的人来说,掌握JavaWeb技术是必不可少的。那么,学完JavaWeb能否找到一份不错的工作呢?答案是肯定的。

JavaWeb技术包括JSP、servlet、Struts、Spring、Hibernate等。其中,JSP和servlet是JavaWeb开发的基础。下面将介绍七个JavaWeb示例,让你快速入门Web开发。

1. 使用JSP显示日期和时间

显示日期和时间
  <%
    out.println(new java.util.Date());
  %>

2. 实现登录功能

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  if("admin".equals(username) && "admin".equals(password)){
    response.sendRedirect("home.jsp");
  }else{
    response.sendRedirect("login.jsp");
  }
}

3. 使用过滤器统计访问次数

@WebFilter("/*")
public class CountFilter implements Filter {
  private int count = 0;
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    count++;
    System.out.println("当前访问次数为:" + count);
    chain.doFilter(request, response);
  }
  public void init(FilterConfig fConfig) throws ServletException {}
  public void destroy() {}
}

4. 文件上传

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  request.setCharacterEncoding("UTF-8");//设置编码
  //获取上传文件的目录
  String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
  File file = new File(savePath);
  //如果目录不存在,创建目录
  if(!file.exists() && !file.isDirectory()){
    System.out.println("目录不存在,创建目录:" + savePath);
    file.mkdir();
  }
  //消息提示
  String message = "";
  try{
    //使用Apache文件上传组件处理文件上传
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    //解决上传文件名的中文乱码
    upload.setHeaderEncoding("UTF-8");
    //判断是否是上传文件
    if(!ServletFileUpload.isMultipartContent(request))则直接返回
      return;
    
    //设置上传单个文件的最大值
    upload.setFileSizeMax(1024*1024);
    //设置上传多个文件的总大小
    upload.setSizeMax(1024*1024*10);
    //定义上传文件的临时目录
    String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp");
    File tempFile = new File(tempPath);
    if(!tempFile.exists()){
      tempFile.mkdir();
    }
    //绑定临时目录
    factory.setRepository(tempFile);
    //解析请求的数据
    List
  list = upload.parseRequest(request);
 
    for(FileItem item : list){
      //判断上传文件的类型
      if(item.isFormField()){
        //处理普通表单字段
        String name = item.getFieldName();
        String value = item.getString("UTF-8");
        System.out.println(name + "=" + value);
      }else{
        //处理上传文件
        String fileName = item.getName();
        System.out.println("上传文件的文件名:" + fileName);
        if(fileName == null || fileName.trim().equals(""))
          continue;
        
        //处理文件名,重命名
        fileName = System.currentTimeMillis() + ".jpg";
        //获取上传文件的输入流
        InputStream is = item.getInputStream();
        //创建文件输出流
        FileOutputStream fos = new FileOutputStream(savePath + "\\" + fileName);
        //创建缓冲区
        byte[] buffer = new byte[1024];
        int length = 0;
        //写入文件
        while((length = is.read(buffer)) != -1){
          fos.write(buffer, 0, length);
        }
        //关闭流
        is.close();
        fos.close();
        //删除临时文件
        item.delete();
        message = "文件上传成功!";
      }
    }
  }catch(Exception e){
    e.printStackTrace();
    message = "文件上传失败!";
  }
  //输出消息
  request.setAttribute("message", message);
  request.getRequestDispatcher("/message.jsp").forward(request, response);
}

5. 分页查询

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  //获取当前页码,默认为1
  String pageNumberStr = request.getParameter("pageNumber");
  int pageNumber = 1;
  if(pageNumberStr != null && !"".equals(pageNumberStr)){
    pageNumber = Integer.parseInt(pageNumberStr);
  }
  //查询总记录数
  int totalCount = bookDao.getTotalCount();
  //计算总页码数
  int pageCount = (int)Math.ceil((double)totalCount/10);
  //获取当前页码对应的图书列表
  List
  bookList = bookDao.getBookList(pageNumber);
 
  //设置请求属性
  request.setAttribute("bookList", bookList);
  request.setAttribute("pageNumber", pageNumber);
  request.setAttribute("pageCount", pageCount);
  //转发到图书列表页面
  request.getRequestDispatcher("/book_list.jsp").forward(request, response);
}

6. 使用Ajax实现无刷新查询

script
function doSearch(){
  var keyword = $("#keyword").val();
  $.ajax({
    type: "POST",
    url: "search",
    data: {"keyword":keyword},
    dataType: "json",
    success: function(result){
      var html = "";
      $.each(result, function(index, item){
        html += "";
        html += "" + item.id + "";
        html += "" + item.name + "";
        html += "" + item.author + "";
        html += "" + item.publisher + "";
        html += "";
      });
      $("#search-tbody").html(html);
    }
  });
}

7. 使用Spring实现IOC和AOP

xml

通过以上七个JavaWeb示例,你应该对JavaWeb技术有了更深入的了解。学习好JavaWeb技术后,你可以尝试寻找Web开发工作。以下是三个和JavaWeb相关的

  
  

评论区