java web 配置访问路径_JavaWeb_通过xml配置文件配置servlet访问路径

Servlet两种访问路径

一、在Servlet类中通过设置@WebServlet标注访问

二、在web.xml中编写配置文件

第一种能比较直观看到Servlet路径,但当项目发布后不好再对Servlet路径进行修改

第二种把Servlet路径在web.xml中配置, 能更好对Servlet路径进行配置的修改

利用Servlet处理注册登录请求  传送门

项目结构

a69eb17732f3b58d20031b8af9f18259.png

af46194486d4166ee067ae0c170cff4c4a5.jpg

28dc8309f501bcf0baaeb6a54a9d00c2ad2.jpg

packagecom.Gary.servlet;importjava.io.IOException;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.Gary.model.User;importcom.Gary.util.DBUtil;

@WebServlet("/login_do")public class LoginServlet extendsHttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String username= request.getParameter("username");

String password= request.getParameter("password");

User user=DBUtil.verifyAccount(username,password);if(user==null){//out.println("登录失败,用户名或密码错误");

request.setAttribute("message","登录失败,用户名或密码错误");

request.getRequestDispatcher("login.jsp").forward(request,response);

}else{//out.println("登录成功");

int number = 0;//获取到application对象

ServletContext application = this.getServletContext();//第一次登录用户时if不瞒住,number=0

if(application.getAttribute("userNumber")!=null){

number= (Integer)application.getAttribute("userNumber");

}//登录过一个用户后在原基础number上进行++

number++;

application.setAttribute("userNumber",number);//通过seesion的setAttribute传递数据

request.getSession().setAttribute("user", user);//登录请求的转发,将数据传递给personCenter.jsp页面

request.getRequestDispatcher("personCenter.jsp").forward(request,response);

}

}

}

LoginServlet.java

36c61a8d39332bb3e19006c6d7ed5d7d0d7.jpg

2dc9feb6698094b90557ccea81f8f85a86f.jpg

packagecom.Gary.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.Gary.util.DBUtil;//@WebServlet("/register_do")

public class RegisterServlet extendsHttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String username= request.getParameter("username");

String password= request.getParameter("password");int age = Integer.parseInt(request.getParameter("age"));

String sex= request.getParameter("sex");boolean isSuccess =DBUtil.addUser(username,password,age,sex);//使用请求转发

if(isSuccess){

request.setAttribute("message", "注册成功,请登录");//通过getRequestDispatcher传递路径将请求转发给login.jsp

request.getRequestDispatcher("login.jsp").forward(request,response);

}else{

request.setAttribute("message", "注册失败,用户名重复");//通过getRequestDispatcher传递路径将请求转发给login.jsp

request.getRequestDispatcher("register.jsp").forward(request,response);

}

}

}

RegisterServlet.java

76b696ea7751cf19cfd8c260e919748239b.jpg

385a7839e2720b46d90387573b04c53d90e.jpg

Insert title here

Objecto=session.getAttribute("user");if(o!=null){

User user=(User)o;

out.println("当前登录用户:"+user.getUsername()+"
");

}%>

Objectmsg=request.getAttribute("message");if(msg!=null)

out.println(msg);%>登录


用户名:
密码:

login.jsp

9520f6145ba3bf2ecc687821c6ab3250311.jpg

bb953e5b3c08bb7cda74f0b785efe5e40bc.jpg

Insert title here

Objecto=session.getAttribute("user");if(o!=null){

User user=(User)o;

out.println("当前登录用户:"+user.getUsername()+"
");

}%>

Objectmsg=request.getAttribute("message");if(msg!=null)

out.println(msg);%>

用户名:
密码:
年龄:
性别: 男女

register.jsp

ebc4baeb9ff9804f52a2cdcece5f64ac792.jpg

a370099ebdbeec65393f828464c7d081af7.jpg

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"metadata-complete="true">

LoginServlet

com.Gary.servlet.LoginServlet

RegisterServlet

com.Gary.servlet.RegisterServlet

LoginServlet

/login_do

RegisterServlet

/register_do

web.xml

LoginServlet.java处理login.jsp登录表单的请求

RegisterServlet.java处理register.jsp注册表单的请求

第一种

通过在Servlet上设置@WebServlet标注,容器就会自动读取当中的信息,@WebServlet告诉容器,如果请求的URL是"/xxxxxx"

LoginServlet.java中配置的路径是login_do,在register.jsp的from表单中设置action也为login_do

由LoginServlet.java处理register.jsp的from表单提交的信息

@WebServlet("/login_do")public class LoginServlet extendsHttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String username= request.getParameter("username");

String password= request.getParameter("password");

User user=DBUtil.verifyAccount(username,password);if(user==null){//out.println("登录失败,用户名或密码错误");

request.setAttribute("message","登录失败,用户名或密码错误");

request.getRequestDispatcher("login.jsp").forward(request,response);

}else{//out.println("登录成功");

int number = 0;//获取到application对象

ServletContext application = this.getServletContext();//第一次登录用户时if不瞒住,number=0

if(application.getAttribute("userNumber")!=null){

number= (Integer)application.getAttribute("userNumber");

}//登录过一个用户后在原基础number上进行++

number++;

application.setAttribute("userNumber",number);//通过seesion的setAttribute传递数据

request.getSession().setAttribute("user", user);//登录请求的转发,将数据传递给personCenter.jsp页面

request.getRequestDispatcher("personCenter.jsp").forward(request,response);

}

}

}

用户名:
密码:

第二种

通过web.xml配置文件进行配置

中填写项目中Servlet名字  【可随便填写,用作后边映射url】

中填写项目中该Servlet路径

配置servlet-name和地址映射

LoginServlet

com.Gary.servlet.LoginServlet

RegisterServlet

com.Gary.servlet.RegisterServlet

LoginServlet

/login_do

RegisterServlet

/register_do

将com.Gary.servlet.LoginServlet路径上的Servlet命名为LoginServlet,与后边中的LoginServlet相匹配

【按住Ctrl+鼠标左键点击下的路径可直接访问对应Servlet下的路径】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值