关于在MVC模式下将浏览网页的用户IP写入后台数据库的处理流程问题 5C

大家知道,在MVC模式下,是JSP-->SERVLET-->SERVICE-->DAO这种调用关系,就是说针对后台数据库的操作都是在DAO中实现。
现在有一个简单需求,就是要将浏览网页的用户IP写入后台数据库。比如用户要浏览的网页是a.jsp,现在需要把这个用户访问a.jsp时的IP写入后台数据库。
那么请问实现流程是怎样的?难道是在JSP加载页面时用request.getRemoteAddr()获得用户IP,然后在js的onload中调用SERVLET(SERVLET-->SERVICE-->DAO)来实现将刚才获得的用户IP写入数据库吗?总觉得这个实现流程怪怪的。。。
或者说,应该是让用户先访问一个SERVLET,在SERVLET中获得用户IP,然后将用户IP写入数据库。最后,在SERVLET中跳转到a.jsp?感觉这个流程好像逻辑清晰些似的。。。。
究竟应该怎样实现好呢?请大神们指教,谢谢!

2个回答

后台实现一个接口,用于当用户那个前端页面时,处理ip的信息。如果前端可以拿到用户的ip,就把ip和用户信息带过来,传给后端;如果后端从header中
能渠道ip和用户信息也可以。

u014717505
aaaffaewrerewrwer 就是说servlet里就是单纯的获取用户信息和写数据库操作,而没有对前端的任何response或重定向操作了是吧?
9 个月之前 回复
u014717505
aaaffaewrerewrwer 回复明教一百零八代觉主: 哦,您的意思是我用ajax的方法,去请求后台的servlet,然后servlet里进行获取用户信息和写数据库操作是吧?servlet里就是单纯的获取用户信息和写数据库操作,之后肯定也就不需要什么重新定向之类的操作了是吧?
9 个月之前 回复
u012737673
明教第三十四代觉主 用户访问你这个页面后,前端不可以发一个异步的请求到后端吗?这跟表单没什么关系吧?ajax什么的不就是干这个的吗
9 个月之前 回复
u014717505
aaaffaewrerewrwer 非常感谢您的回答,比如说a.jsp非常简单,就是用户访问时显示个hello world,没有任何提交表单的操作。 现在需要获取访问页面的用户的两个信息,一个是IP,一个是user-agent,那么您的意思是我在JSP里调用SERVLET,然后在SERVLET中用request.getHeader之类的方法获得用户信息,写入数据库是吗? 那么,这种没有提交表单的JSP里怎么调用SERVLET呢?是不是在java script的onload中调用SERVLET呢?例如a.jsp大概是下面的样子? <title>a.jsp</title> <script Language = "JavaScript" > window.onload //在这里调用SERVLET? </script> <h1>hello world!</h1> 然后SERVLET中就是调用SERVICE-->DAO的写数据库操作,操作完后,没有任何重新定向之类的操作? 总感觉上面的流程有点怪怪的感觉。。。。。
9 个月之前 回复
u014717505
aaaffaewrerewrwer 回复: 比如说a.jsp非常简单,就是用户访问时显示个hello world。那么难道是a.sjp加载页面时用request.getRemoteAddr()获得用户IP,然后在js的onload中调用SERVLET(SERVLET-->SERVICE-->DAO)来实现将刚才获得的用户IP写入数据库吗?
9 个月之前 回复
u014717505
aaaffaewrerewrwer 您的意思是用户访问a.jsp时,在a.jsp中拿到用户IP,然后把IP传给SERVLET处理?
9 个月之前 回复

后端通过头信息获取IP地址。大概流程是:用户访问前段界面 -> 前段向后端发起请求 -> 后端接收到前段请求,使用HttpServletRequest对象从头信息中获取IP -> 将IP添加到数据库 -> 进行其他业务操作。
不管任何请求,数据总能从request中获取到,如果使用springboot的话,可以将获取ip放在gateway模块中,如果使用原生servlet的话,可以考虑放在自己程序抽象的servlet中。

u014717505
aaaffaewrerewrwer 非常感谢您的回答,比如说a.jsp非常简单,就是用户访问时显示个hello world,没有任何提交表单的操作。 现在需要获取访问页面的用户的两个信息,一个是IP,一个是user-agent,那么您的意思是我在JSP里调用SERVLET,然后在SERVLET中用request.getHeader之类的方法获得用户信息,写入数据库是吗? 那么,这种没有提交表单的JSP里怎么调用SERVLET呢?是不是在java script的onload中调用SERVLET呢?例如a.jsp大概是下面的样子? <title>a.jsp</title> <script Language = "JavaScript" > window.onload //在这里调用SERVLET? </script> <h1>hello world!</h1> 然后SERVLET中就是调用SERVICE-->DAO的写数据库操作,操作完后,没有任何重新定向之类的操作? 总感觉上面的流程有点怪怪的感觉。。。。。
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐