栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Eclipse新建基于Servlet3.x的maven项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Eclipse新建基于Servlet3.x的maven项目

前言

好长时间没有玩servlet了,还是十年前在校的时候入门java时折腾一下。最近想用Eclipse新建一个基于Servlet3.x的maven项目,却没想到还折腾了好一阵子。正好写一篇文章作为参考的例子。

环境准备

eclipse:Oxygen.1 Release (4.7.1)

servlet:3.1.0

新建maven项目

 

 转换为serlvet3.0

 此时我们发现Dynamic Web Module转换不了3.0,这是本项目最麻烦的地方。

 我们在工程.settings目录下找到org.eclipse.wst.common.project.facet.core.xml这个文件:

打开后编辑jst.web的version为3.0并保存。

 接着项目重新maven update一下。

之后再次打开,发现Dynamic Web Module的版本已经变为3.0。此时已经转换成功。

 编写相关代码

首先我们编辑pom.xml文件


	4.0.0
	com.sadoshi
	shiroWeb
	war
	0.0.1-SNAPSHOT
	shiroWeb Maven Webapp
	http://maven.apache.org
	
		
			commons-logging
			commons-logging
			1.1.3
		
		
			javax.servlet
			javax.servlet-api
			3.1.0
			provided
		
	
	
		shiroWeb
	

接着编辑src/main/webapp/WEB-INF/web.xml文件、如果没有webapp目录,可以按此路径新建。



  20180510
  
    index.jsp
  
  
    HelloServlet
    com.sadoshi.shiroWeb.servlet.HelloServlet
  
  
    HelloServlet
    /hello
  
  
    LoginServlet
    com.sadoshi.shiroWeb.servlet.LoginServlet
  
  
    LoginServlet
    /login
  

 这里我们简单定义了欢迎页面,就是默认根路径访问页面。另外配置当访问/hello时,我们会调用HelloServlet,当访问/login时,我们会调用LoginServlet。

接着编写HelloServlet,这个就当是网站的主页。很简单,就是访问这个servlet,会返回hello.jsp页面:

package com.sadoshi.shiroWeb.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.getRequestDispatcher("/hello.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
}

 再编写LoginServlet,作为登录处理。这里也很简单,如果通过get访问,就返回login.jsp页面。如果通过post访问,就为其设置token并重定向到主页。这里省略了登录认证的环节:

package com.sadoshi.shiroWeb.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.getRequestDispatcher("/login.jsp").forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		cookie cookie = new cookie("token","123");
		resp.addcookie(cookie);
		resp.sendRedirect("/shiroWeb/hello");
	}

}

 注意,pom中的servlet-api版本一定要为3.x,如果用了最新的4.x,可能部分实现会有些不一样,以至于影响运行效果。例如我之前用4.x时,在Filter过滤器的环节处理是有些不同的,所以最好用相同的版本。

现在我们还缺两个页面,首先是主页hello.jsp,我们在webapps目录下新建:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Hello


	Hello Page

在同级目录下新建登录页面login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




用户登录页面


     ${remind}
     登录页面
     
     
登录名:
密码为:

 这样简单的servlet就完成了

测试

我们在eclipse的Servers下新建服务器,如果没有,就在Window -> Show View -> Other..中搜索出来。

 我本机已经安装了tomcat8.0,选择对应的目录即可。

 接着右键新建的服务器选择Add and Remove,把我们的项目添加到右边:

 右键服务器选择Start,然后访问http://localhost:8080/shiroWeb/login,打开登录页

我们随便输入登录名和密码,正常会跳转到/hello路径:

并且我们点F12,然后刷新一下页面,可以看到cookies上面设置了token=123的内容。这个就类似于登录后系统分配一个token,后面系统可以根据这个token字段判断用户是否已登录。

 小结

工欲善其事,必先利其器,创建servlet项目是学习JavaWeb最基础的内容。希望读者能在文章中获取到自己想要的知识。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号